time="2024-06-14T16:32:02Z" level=warning msg="/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/integration-test/docker-compose.yaml: `version` is obsolete" Container integration-test-authentication-1 Creating Container integration-test-authorization-1 Creating Container integration-test-gateway-1 Creating Container integration-test-experiment-1 Creating Container integration-test-device-1 Creating Container integration-test-federation-1 Creating Container integration-test-authorization-1 Created Container integration-test-gateway-1 Created Container integration-test-authentication-1 Created Container integration-test-device-1 Created Container integration-test-federation-1 Created Container integration-test-experiment-1 Created Attaching to authentication-1, authorization-1, device-1, experiment-1, federation-1, gateway-1 gateway-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration gateway-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh gateway-1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf gateway-1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf gateway-1 | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-create_config.sh gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/authorization_service.conf to /etc/nginx/authorization_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/nginx.conf to /etc/nginx/nginx.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/device_service.conf to /etc/nginx/device_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/experiment_service.conf to /etc/nginx/experiment_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/auth_service.conf to /etc/nginx/auth_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/federation_service.conf to /etc/nginx/federation_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_json_errors.conf to /etc/nginx/api_json_errors.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_backends.conf to /etc/nginx/api_backends.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_gateway.conf to /etc/nginx/api_gateway.conf gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh gateway-1 | /docker-entrypoint.sh: Configuration complete; ready for start up federation-1 | node:internal/process/promises:289 federation-1 | triggerUncaughtException(err, true /* fromPromise */); federation-1 | ^ federation-1 | federation-1 | [Error: SQLITE_CANTOPEN: unable to open database file] { federation-1 | errno: 14, federation-1 | code: 'SQLITE_CANTOPEN' federation-1 | } federation-1 | federation-1 | Node.js v20.14.0 federation-1 exited with code 1 experiment-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-06-14T16:32:41Z"} experiment-1 | {"level":"info","message":"Experiment Service started successfully"} authentication-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} 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"} authorization-1 | {"client_addr":"127.0.0.1:37298","level":"info","msg":"Received request.","req_id":1,"req_method":"GET","req_path":"/","subsystem":"opa","time":"2024-06-14T16:32:42Z"} authorization-1 | {"client_addr":"127.0.0.1:37298","level":"info","msg":"Sent response.","req_id":1,"req_method":"GET","req_path":"/","resp_bytes":1424,"resp_duration":0.30216,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:42Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"๐Ÿงช experimental features enabled: []","subsystem":"openfga","timestamp":1718382762.3320117} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"using 'memory' storage engine","subsystem":"openfga","timestamp":1718382762.3321133} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"warn","message":"authentication is disabled","subsystem":"openfga","timestamp":1718382762.3321352} 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":1718382762.3321707} 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":1718382762.332198} 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":1718382762.3322492,"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":1718382762.332888} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"HTTP server listening on 'localhost:3013'...","subsystem":"openfga","timestamp":1718382762.3356936} 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:57626","raw_request":{"name":"crosslab"},"raw_response":{"created_at":"2024-06-14T16:32:42.377935832Z","id":"01J0BSG6C9TBNJCTDTSJ60P8VX","name":"crosslab","updated_at":"2024-06-14T16:32:42.377935832Z"},"request_id":"46d7732a-8157-4d9a-add1-f0fabc9ad750","subsystem":"openfga","timestamp":1718382762.3780634} 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:57626","raw_request":{"schema_version":"1.1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_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":"01J0BSG6EC23009PP0FY0ARJG7"},"request_id":"3a7a33b2-1685-4e11-b1ee-0b35d1dfe4c4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382762.4446042} authorization-1 | {"client_addr":"127.0.0.1:37298","level":"info","msg":"Received request.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","subsystem":"opa","time":"2024-06-14T16:32:42Z"} authorization-1 | {"client_addr":"127.0.0.1:37298","level":"info","msg":"Sent response.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","resp_bytes":0,"resp_duration":0.200599,"resp_status":204,"subsystem":"opa","time":"2024-06-14T16:32:42Z"} authorization-1 | {"level":"info","message":"Authorization Service started successfully"} authorization-1 | {"current_version":"0.54.0","download_opa":"https://openpolicyagent.org/downloads/v0.65.0/opa_linux_amd64","latest_version":"0.65.0","level":"info","msg":"OPA is out of date.","release_notes":"https://github.com/open-policy-agent/opa/releases/tag/v0.65.0","subsystem":"opa","time":"2024-06-14T16:32:42Z"} gateway-1 | {"time_local":"14/Jun/2024:16:32:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /auth/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.017","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"babc549a8e08b4717f52e3397a7fe739"} authentication-1 | {"level":"info","message":"HEAD /auth/status 200 12ms","method":"HEAD","requestID":"babc549a8e08b4717f52e3397a7fe739","responseTime":12,"status":200,"url":"/auth/status"} gateway-1 | {"time_local":"14/Jun/2024:16:32:49 +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.012","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"4fdc0892690c9d1bdb162155b846628e"} device-1 | {"level":"info","message":"HEAD /device/status 200 8ms","method":"HEAD","requestID":"bd6254a0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/device/status"} gateway-1 | {"time_local":"14/Jun/2024:16:32:49 +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.008","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"c71fb760f57bff542846a4024b69ce8c"} authorization-1 | {"level":"info","message":"HEAD /authorization/status 200 3ms","meta":{"req":{"headers":{"accept":"*/*","connection":"close","host":"authorization_service","user-agent":"curl/7.81.0","x-request-id":"c71fb760f57bff542846a4024b69ce8c"},"httpVersion":"1.0","method":"HEAD","originalUrl":"/authorization/status","query":{},"url":"/authorization/status"},"res":{"statusCode":200},"responseTime":3}} gateway-1 | {"time_local":"14/Jun/2024:16:32:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /login HTTP/1.1","status": "201","body_bytes_sent":"88","request_time":"0.141","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"88e2111003b853cebdf14612583a732b"} authentication-1 | {"level":"info","message":"POST /login 201 126ms","method":"POST","requestID":"88e2111003b853cebdf14612583a732b","responseTime":126,"status":201,"url":"/login"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3M30.DefQjrKfgUI0FEDwWWHfpbh_3LDMBT9f2scuCgzBR-c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 11ms","method":"GET","requestID":"d31da37ce09e01073faed53392265101","responseTime":11,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:53Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.428586,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382773,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3M30.DefQjrKfgUI0FEDwWWHfpbh_3LDMBT9f2scuCgzBR-c"} authorization-1 | {"level":"info","message":"POST /authorize 200 18ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d31da37ce09e01073faed53392265101"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7be5b083-961d-499c-9753-3550b22091ab","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bc746c0b-995b-47a1-b0c0-4a528d65037d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382773.5820014} 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":"d31da37ce09e01073faed53392265101"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2c743e80-5938-48b7-9fca-c50f560f6b51","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382773.5952053} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d31da37ce09e01073faed53392265101"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7be5b083-961d-499c-9753-3550b22091ab","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"6034c23f-9c95-42c5-aeae-4c852f1951dc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382773.6342118} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cdcbab3d-ec99-459f-93c6-30927852f9d3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382773.6347685} authorization-1 | {"level":"info","message":"POST /relations/update 200 42ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d31da37ce09e01073faed53392265101"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":42}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7be5b083-961d-499c-9753-3550b22091ab","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7be5b083-961d-499c-9753-3550b22091ab","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:53.634189898Z"}]},"request_id":"ebf8f5f9-2177-42fe-9b53-ebb7bd0ed279","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382773.6419084} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d31da37ce09e01073faed53392265101"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:32: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.225","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d31da37ce09e01073faed53392265101"} device-1 | {"level":"info","message":"POST /devices? 201 203ms","method":"POST","requestID":"d31da37ce09e01073faed53392265101","responseTime":203,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3M30.DefQjrKfgUI0FEDwWWHfpbh_3LDMBT9f2scuCgzBR-c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"412c83c61ede5ca9a7ec3a5063dce358","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:53Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.78427,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382773,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3M30.DefQjrKfgUI0FEDwWWHfpbh_3LDMBT9f2scuCgzBR-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":"384","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"412c83c61ede5ca9a7ec3a5063dce358"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F103b0581-a33b-4426-82bb-57e706214a93","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5cbd3f2b-ccff-42aa-9598-6cf2d9478322","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382773.6978672} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"412c83c61ede5ca9a7ec3a5063dce358"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ee6c69f2-37ff-4e67-92fc-fdd248a231de","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382773.7057858} 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":"412c83c61ede5ca9a7ec3a5063dce358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F103b0581-a33b-4426-82bb-57e706214a93","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"5b8a4f2a-d266-464e-aedb-e24e317f6bb1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382773.7182355} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"219bca9d-9b7d-4e65-a071-4425cd8a7162","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382773.7185087} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"412c83c61ede5ca9a7ec3a5063dce358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":39}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F103b0581-a33b-4426-82bb-57e706214a93","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F103b0581-a33b-4426-82bb-57e706214a93","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:53.718225615Z"}]},"request_id":"a5338d3f-6122-4e45-a24e-7551e05b6d03","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382773.7500958} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"412c83c61ede5ca9a7ec3a5063dce358"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:32: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.087","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"412c83c61ede5ca9a7ec3a5063dce358"} device-1 | {"level":"info","message":"POST /devices? 201 81ms","method":"POST","requestID":"412c83c61ede5ca9a7ec3a5063dce358","responseTime":81,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0bd540514cdd02323f5466754198de54","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:32:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/103b0581-a33b-4426-82bb-57e706214a93/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":"0bd540514cdd02323f5466754198de54"} device-1 | {"level":"info","message":"OPTIONS /devices/103b0581-a33b-4426-82bb-57e706214a93/websocket 200 1ms","method":"OPTIONS","requestID":"0bd540514cdd02323f5466754198de54","responseTime":1,"status":200,"url":"/devices/103b0581-a33b-4426-82bb-57e706214a93/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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e94591550d9d09c42f91bc5fb9b102f2","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:32:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7be5b083-961d-499c-9753-3550b22091ab/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":"e94591550d9d09c42f91bc5fb9b102f2"} device-1 | {"level":"info","message":"OPTIONS /devices/7be5b083-961d-499c-9753-3550b22091ab/websocket 200 1ms","method":"OPTIONS","requestID":"e94591550d9d09c42f91bc5fb9b102f2","responseTime":1,"status":200,"url":"/devices/7be5b083-961d-499c-9753-3550b22091ab/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8e337bd2647e351465e5aeb56312fca4","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1afe6178bebb6a944fa288eec22da7c3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.678764,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382776,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8e337bd2647e351465e5aeb56312fca4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.666336,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382776,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1afe6178bebb6a944fa288eec22da7c3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:32:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/103b0581-a33b-4426-82bb-57e706214a93/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.058","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8e337bd2647e351465e5aeb56312fca4"} device-1 | {"level":"info","message":"POST /devices/103b0581-a33b-4426-82bb-57e706214a93/websocket 200 50ms","method":"POST","requestID":"8e337bd2647e351465e5aeb56312fca4","responseTime":50,"status":200,"url":"/devices/103b0581-a33b-4426-82bb-57e706214a93/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:32:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7be5b083-961d-499c-9753-3550b22091ab/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.054","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1afe6178bebb6a944fa288eec22da7c3"} device-1 | {"level":"info","message":"POST /devices/7be5b083-961d-499c-9753-3550b22091ab/websocket 200 47ms","method":"POST","requestID":"1afe6178bebb6a944fa288eec22da7c3","responseTime":47,"status":200,"url":"/devices/7be5b083-961d-499c-9753-3550b22091ab/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7c80c552896f0079b4538922142fcfad","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.934391,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382776,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c80c552896f0079b4538922142fcfad"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7be5b083-961d-499c-9753-3550b22091ab","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7be5b083-961d-499c-9753-3550b22091ab","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:53.634189898Z"}]},"request_id":"9e4905a4-f4c9-4232-9f37-1e0253dfa3b5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382776.2872555} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c80c552896f0079b4538922142fcfad"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:32:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7be5b083-961d-499c-9753-3550b22091ab? 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":"7c80c552896f0079b4538922142fcfad"} device-1 | {"level":"info","message":"GET /devices/7be5b083-961d-499c-9753-3550b22091ab? 200 21ms","method":"GET","requestID":"7c80c552896f0079b4538922142fcfad","responseTime":21,"status":200,"url":"/devices/7be5b083-961d-499c-9753-3550b22091ab?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d50ab66e40ba8965db0ff5f309c6f80e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.675435,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382776,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d50ab66e40ba8965db0ff5f309c6f80e"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F103b0581-a33b-4426-82bb-57e706214a93","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F103b0581-a33b-4426-82bb-57e706214a93","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:53.718225615Z"}]},"request_id":"2305b9fa-81b9-46f0-a3f0-77299be4bf92","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382776.3153553} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d50ab66e40ba8965db0ff5f309c6f80e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:32:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/103b0581-a33b-4426-82bb-57e706214a93? 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":"d50ab66e40ba8965db0ff5f309c6f80e"} device-1 | {"level":"info","message":"GET /devices/103b0581-a33b-4426-82bb-57e706214a93? 200 19ms","method":"GET","requestID":"d50ab66e40ba8965db0ff5f309c6f80e","responseTime":19,"status":200,"url":"/devices/103b0581-a33b-4426-82bb-57e706214a93?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ee30642351a94bc18f2edffc41adb59b","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:48592","level":"info","msg":"Received request.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.958943,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382776,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag"} 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":"ee30642351a94bc18f2edffc41adb59b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"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:48592","level":"info","msg":"Received request.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.687997,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382776,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c156e760-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.92799,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382776,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag"} 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":"c1575c90-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7be5b083-961d-499c-9753-3550b22091ab","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7be5b083-961d-499c-9753-3550b22091ab","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:53.634189898Z"}]},"request_id":"533fd356-7e88-4ea2-850c-8b1dc1999ba1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382776.551552} 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":"c156e760-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F103b0581-a33b-4426-82bb-57e706214a93","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F103b0581-a33b-4426-82bb-57e706214a93","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:53.718225615Z"}]},"request_id":"48d184c4-7384-481d-8582-4c3c1020b481","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382776.5542774} 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":"c1575c90-2a6b-11ef-8ad5-3d996a2c698c"},"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/7be5b083-961d-499c-9753-3550b22091ab? 200 30ms","method":"GET","requestID":"c156e760-2a6b-11ef-8ad5-3d996a2c698c","responseTime":30,"status":200,"url":"/devices/7be5b083-961d-499c-9753-3550b22091ab?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/103b0581-a33b-4426-82bb-57e706214a93? 200 29ms","method":"GET","requestID":"c1575c90-2a6b-11ef-8ad5-3d996a2c698c","responseTime":29,"status":200,"url":"/devices/103b0581-a33b-4426-82bb-57e706214a93?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"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/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.708944,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.583145,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382776,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag"} 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":"c1682570-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382776,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag"} 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":"c1687390-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7be5b083-961d-499c-9753-3550b22091ab","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7be5b083-961d-499c-9753-3550b22091ab","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:53.634189898Z"}]},"request_id":"122ccab4-504e-4f7d-b66b-02903d44592e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382776.663227} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c1682570-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F103b0581-a33b-4426-82bb-57e706214a93","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F103b0581-a33b-4426-82bb-57e706214a93","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:53.718225615Z"}]},"request_id":"942ed276-c64b-4b23-91b0-81468da47f25","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382776.664828} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c1687390-2a6b-11ef-8ad5-3d996a2c698c"},"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/7be5b083-961d-499c-9753-3550b22091ab? 200 24ms","method":"GET","requestID":"c1682570-2a6b-11ef-8ad5-3d996a2c698c","responseTime":24,"status":200,"url":"/devices/7be5b083-961d-499c-9753-3550b22091ab?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/103b0581-a33b-4426-82bb-57e706214a93? 200 23ms","method":"GET","requestID":"c1687390-2a6b-11ef-8ad5-3d996a2c698c","responseTime":23,"status":200,"url":"/devices/103b0581-a33b-4426-82bb-57e706214a93?"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Faf9b2889-2315-4774-9b84-eff8c7bb6d52#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Faf9b2889-2315-4774-9b84-eff8c7bb6d52","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"2a198aa3-95bf-497d-9b6d-7d42f04b8b9a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382776.6807113} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a4948b09-adbf-406f-a383-93ea786d4c1f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382776.681052} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 25ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ee30642351a94bc18f2edffc41adb59b"},"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:48592","level":"info","msg":"Received request.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.645849,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c16d5590-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7be5b083-961d-499c-9753-3550b22091ab/signaling 200 14ms","method":"POST","requestID":"c16d5590-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/7be5b083-961d-499c-9753-3550b22091ab/signaling"} gateway-1 | {"time_local":"14/Jun/2024:16:32:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.370","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ee30642351a94bc18f2edffc41adb59b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 344ms","method":"POST","requestID":"ee30642351a94bc18f2edffc41adb59b","responseTime":344,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b786b7dc386ce8845750d62800ede61c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.850333,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c170ff10-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:56Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/103b0581-a33b-4426-82bb-57e706214a93/signaling 200 10ms","method":"POST","requestID":"c170ff10-2a6b-11ef-8ad5-3d996a2c698c","responseTime":10,"status":200,"url":"/devices/103b0581-a33b-4426-82bb-57e706214a93/signaling"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.943576,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382776,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Attempting to create peerconnections for 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":"b786b7dc386ce8845750d62800ede61c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"030af7c7-1ed6-429d-bb00-1b0a403d3363"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"489140c7-db70-41ca-91e4-dea2cd1e791b"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"fce9a2ea-1b26-45f2-acf7-578d0f1ac778"}]},"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/7be5b083-961d-499c-9753-3550b22091ab"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7be5b083-961d-499c-9753-3550b22091ab","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7be5b083-961d-499c-9753-3550b22091ab","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:53.634189898Z"}]},"request_id":"6e1be45e-aace-448b-aadb-e7cdd8d3113a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382776.7217243} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b786b7dc386ce8845750d62800ede61c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:56Z"} gateway-1 | {"time_local":"14/Jun/2024:16:32:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7be5b083-961d-499c-9753-3550b22091ab? 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":"b786b7dc386ce8845750d62800ede61c"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.537789,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:56Z"} device-1 | {"level":"info","message":"GET /devices/7be5b083-961d-499c-9753-3550b22091ab? 200 20ms","method":"GET","requestID":"b786b7dc386ce8845750d62800ede61c","responseTime":20,"status":200,"url":"/devices/7be5b083-961d-499c-9753-3550b22091ab?"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382776,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag"} 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":"c173be30-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"e6b836856034c7e2e5bf190cab4ef1d4","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.701097,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382776,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3Nn0.2Lb2kB1nC168MvhL1l2TX5A8FKKTOFt9VFRG_I0c3ag"} 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":"e6b836856034c7e2e5bf190cab4ef1d4"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F103b0581-a33b-4426-82bb-57e706214a93","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F103b0581-a33b-4426-82bb-57e706214a93","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:53.718225615Z"}]},"request_id":"c41f4af8-7d70-4b62-aa5e-3aff50fea291","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382776.749655} 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":"e6b836856034c7e2e5bf190cab4ef1d4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"93c328dc-da19-4d69-8166-fd33616db01b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382776.7514307} 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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"63890f66-3873-483e-8a13-d5a0f5eb64ce","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382776.7550912} gateway-1 | {"time_local":"14/Jun/2024:16:32:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/103b0581-a33b-4426-82bb-57e706214a93? 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":"e6b836856034c7e2e5bf190cab4ef1d4"} device-1 | {"level":"info","message":"GET /devices/103b0581-a33b-4426-82bb-57e706214a93? 200 16ms","method":"GET","requestID":"e6b836856034c7e2e5bf190cab4ef1d4","responseTime":16,"status":200,"url":"/devices/103b0581-a33b-4426-82bb-57e706214a93?"} 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":"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":"c173be30-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} 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/04778721-81ad-471b-9a40-4e93747435dd'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/04778721-81ad-471b-9a40-4e93747435dd'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 49ms","method":"POST","requestID":"c173be30-2a6b-11ef-8ad5-3d996a2c698c","responseTime":49,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/04778721-81ad-471b-9a40-4e93747435dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"04778721-81ad-471b-9a40-4e93747435dd","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2a2775db55ccafc7905c372e939f0bcc","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/7be5b083-961d-499c-9753-3550b22091ab"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/04778721-81ad-471b-9a40-4e93747435dd"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"04778721-81ad-471b-9a40-4e93747435dd","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 13ms","method":"POST","requestID":"2a2775db55ccafc7905c372e939f0bcc","responseTime":13,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:32: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.018","http_referrer":"","http_user_agent":"node-fetch","requestID":"2a2775db55ccafc7905c372e939f0bcc"} device-1 | {"data":{"peerconnection":"04778721-81ad-471b-9a40-4e93747435dd","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/04778721-81ad-471b-9a40-4e93747435dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"04778721-81ad-471b-9a40-4e93747435dd","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"01b35e723eddc5cccc7f4f8c050a252e","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/7be5b083-961d-499c-9753-3550b22091ab"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/04778721-81ad-471b-9a40-4e93747435dd"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:57Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F04778721-81ad-471b-9a40-4e93747435dd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b8f6f6b9-3480-44aa-9a97-7759e6022aa1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.0522711} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.631141,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/04778721-81ad-471b-9a40-4e93747435dd","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/04778721-81ad-471b-9a40-4e93747435dd","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":"c1a50760-2a6b-11ef-8ad5-3d996a2c698c"},"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/04778721-81ad-471b-9a40-4e93747435dd 200 11ms","method":"GET","requestID":"c1a50760-2a6b-11ef-8ad5-3d996a2c698c","responseTime":11,"status":200,"url":"/peerconnections/04778721-81ad-471b-9a40-4e93747435dd"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 37ms","method":"POST","requestID":"01b35e723eddc5cccc7f4f8c050a252e","responseTime":37,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:32: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.041","http_referrer":"","http_user_agent":"node-fetch","requestID":"01b35e723eddc5cccc7f4f8c050a252e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3N30.vX2VH4iYKB7s9PZTEXni6kbzgpykVxQsJZAYU0IEijE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"84ec33f9acd900b9027dc32d95166123","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:57Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.741799,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382777,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3N30.vX2VH4iYKB7s9PZTEXni6kbzgpykVxQsJZAYU0IEijE"} 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":"84ec33f9acd900b9027dc32d95166123"},"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/af9b2889-2315-4774-9b84-eff8c7bb6d52"} gateway-1 | {"time_local":"14/Jun/2024:16:32:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"84ec33f9acd900b9027dc32d95166123"} experiment-1 | {"level":"info","message":"GET /experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52 200 16ms","method":"GET","requestID":"84ec33f9acd900b9027dc32d95166123","responseTime":16,"status":200,"url":"/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3N30.vX2VH4iYKB7s9PZTEXni6kbzgpykVxQsJZAYU0IEijE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5ecf9fb86aa2aaf28d8657b919ac7670","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:57Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.731786,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382777,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3N30.vX2VH4iYKB7s9PZTEXni6kbzgpykVxQsJZAYU0IEijE"} 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":"5ecf9fb86aa2aaf28d8657b919ac7670"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:57Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.827794,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/04778721-81ad-471b-9a40-4e93747435dd","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/04778721-81ad-471b-9a40-4e93747435dd","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382777,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3N30.vX2VH4iYKB7s9PZTEXni6kbzgpykVxQsJZAYU0IEijE"} 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":"c1b708c0-2a6b-11ef-8ad5-3d996a2c698c"},"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/04778721-81ad-471b-9a40-4e93747435dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/04778721-81ad-471b-9a40-4e93747435dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"04778721-81ad-471b-9a40-4e93747435dd","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"52b212fe8bbb2372a4d331615dcd7a7a","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/04778721-81ad-471b-9a40-4e93747435dd"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a10f2721fe406e0dba5a8fc19c0671d3","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/7be5b083-961d-499c-9753-3550b22091ab"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/04778721-81ad-471b-9a40-4e93747435dd"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F04778721-81ad-471b-9a40-4e93747435dd': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F04778721-81ad-471b-9a40-4e93747435dd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"a87585b7-3537-4ce9-8422-94ce8dc3a4f4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.1929388} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"97f0efb6-3082-47d5-81b0-cb02e2f4d8f6","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.1930633} device-1 | {"data":{"peerconnection":"04778721-81ad-471b-9a40-4e93747435dd","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"level":"info","message":"POST /relations/update 200 18ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c1b708c0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/04778721-81ad-471b-9a40-4e93747435dd 204 36ms","method":"DELETE","requestID":"c1b708c0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":36,"status":204,"url":"/peerconnections/04778721-81ad-471b-9a40-4e93747435dd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Faf9b2889-2315-4774-9b84-eff8c7bb6d52': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Faf9b2889-2315-4774-9b84-eff8c7bb6d52","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"c83095e3-3f85-4103-8b50-1a799e4253f2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.2374368} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"46ffbc76-9fe3-4a7d-bff0-75cb688ce83e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.2376893} 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":"5ecf9fb86aa2aaf28d8657b919ac7670"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"} gateway-1 | {"time_local":"14/Jun/2024:16:32:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.148","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5ecf9fb86aa2aaf28d8657b919ac7670"} experiment-1 | {"level":"info","message":"DELETE /experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52 204 144ms","method":"DELETE","requestID":"5ecf9fb86aa2aaf28d8657b919ac7670","responseTime":144,"status":204,"url":"/experiments/af9b2889-2315-4774-9b84-eff8c7bb6d52"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 111ms","method":"POST","requestID":"52b212fe8bbb2372a4d331615dcd7a7a","responseTime":111,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:32: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.116","http_referrer":"","http_user_agent":"node-fetch","requestID":"52b212fe8bbb2372a4d331615dcd7a7a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 109ms","method":"POST","requestID":"a10f2721fe406e0dba5a8fc19c0671d3","responseTime":109,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:32: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.116","http_referrer":"","http_user_agent":"node-fetch","requestID":"a10f2721fe406e0dba5a8fc19c0671d3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3N30.vX2VH4iYKB7s9PZTEXni6kbzgpykVxQsJZAYU0IEijE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"fcfec9942d062bc633799689ee605f5a","responseTime":5,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:32:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1488","request_time":"1.062","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"18d2cd9e391420e0dcd8a5fd130f6cf0"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:57Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.785574,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:57Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382777,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3N30.vX2VH4iYKB7s9PZTEXni6kbzgpykVxQsJZAYU0IEijE"} 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":"fcfec9942d062bc633799689ee605f5a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} gateway-1 | {"time_local":"14/Jun/2024:16:32:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1758","request_time":"1.071","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8690d9abfc479bbf7eaa6a332b2d21e3"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/103b0581-a33b-4426-82bb-57e706214a93' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/7be5b083-961d-499c-9753-3550b22091ab' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24bc34de-462f-44da-b819-2c8234f55ab4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"04d0f385-b3b3-46ea-ba72-fc8daef51054","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.3308163} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fcfec9942d062bc633799689ee605f5a"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2d8c1323-dcb8-4489-b8d7-7f83417e641f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.3364244} 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":"fcfec9942d062bc633799689ee605f5a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24bc34de-462f-44da-b819-2c8234f55ab4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"44369c97-a06a-4e75-b5d3-7014bd420ff4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.3482478} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bea7e77c-01e2-40ab-8846-6dad1ed48c72","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.3484244} 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":"fcfec9942d062bc633799689ee605f5a"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24bc34de-462f-44da-b819-2c8234f55ab4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24bc34de-462f-44da-b819-2c8234f55ab4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:57.348234748Z"}]},"request_id":"49bf45bb-1b5e-44d5-a869-afb6cd05507e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.3539345} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fcfec9942d062bc633799689ee605f5a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:32:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.061","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fcfec9942d062bc633799689ee605f5a"} device-1 | {"level":"info","message":"POST /devices? 201 54ms","method":"POST","requestID":"fcfec9942d062bc633799689ee605f5a","responseTime":54,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3N30.vX2VH4iYKB7s9PZTEXni6kbzgpykVxQsJZAYU0IEijE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"708ab27991f2346830c79b6a1bd46489","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:57Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.717058,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:57Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382777,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3N30.vX2VH4iYKB7s9PZTEXni6kbzgpykVxQsJZAYU0IEijE"} 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":"708ab27991f2346830c79b6a1bd46489"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bba8f18c-5d59-40d3-8671-ac30238bf344","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.3820255} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"708ab27991f2346830c79b6a1bd46489"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8c8c40fb-ebbb-4dc5-9854-99bb72441e3a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.3870277} 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":"708ab27991f2346830c79b6a1bd46489"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"52b94f18-899f-4845-a313-755cd055d7f3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.404903} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7d1e0149-9231-48f6-9972-8bef35249c56","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.4051874} 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":"708ab27991f2346830c79b6a1bd46489"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:57.404885870Z"}]},"request_id":"85a55e9e-229e-4aca-9719-fe9a73f3825b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382777.4102075} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"708ab27991f2346830c79b6a1bd46489"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"708ab27991f2346830c79b6a1bd46489","responseTime":50,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:32:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"708ab27991f2346830c79b6a1bd46489"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OH0.IIqI5O2qymHWANycUaf1uACi_Hm53AB-7ORs0YgVewA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cad72c24ddb790febc485b90dc87aaae","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:58Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.659633,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382778,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OH0.IIqI5O2qymHWANycUaf1uACi_Hm53AB-7ORs0YgVewA"} 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":"cad72c24ddb790febc485b90dc87aaae"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:57.404885870Z"}]},"request_id":"73e2fb00-2493-4293-a433-a90d4a9e546c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382778.0543988} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cad72c24ddb790febc485b90dc87aaae"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"66d4ab2a-1ba3-4188-9f35-db089ff11fc4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382778.061082} 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":"cad72c24ddb790febc485b90dc87aaae"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:57.404885870Z"}]},"request_id":"791f8b9e-07db-4738-94f3-f29c183a02d1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382778.0818028} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cad72c24ddb790febc485b90dc87aaae"},"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/3fb61447-3d0c-4040-b4a1-760718d94953 200 50ms","method":"PATCH","requestID":"cad72c24ddb790febc485b90dc87aaae","responseTime":50,"status":200,"url":"/devices/3fb61447-3d0c-4040-b4a1-760718d94953"} gateway-1 | {"time_local":"14/Jun/2024:16:32:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/3fb61447-3d0c-4040-b4a1-760718d94953 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.056","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"cad72c24ddb790febc485b90dc87aaae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OH0.IIqI5O2qymHWANycUaf1uACi_Hm53AB-7ORs0YgVewA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a50473a3f40deb04684845186a2f97cd","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:58Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68503,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382778,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OH0.IIqI5O2qymHWANycUaf1uACi_Hm53AB-7ORs0YgVewA"} 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":"a50473a3f40deb04684845186a2f97cd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:32:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3fb61447-3d0c-4040-b4a1-760718d94953/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":"a50473a3f40deb04684845186a2f97cd"} device-1 | {"level":"info","message":"POST /devices/3fb61447-3d0c-4040-b4a1-760718d94953/websocket 200 23ms","method":"POST","requestID":"a50473a3f40deb04684845186a2f97cd","responseTime":23,"status":200,"url":"/devices/3fb61447-3d0c-4040-b4a1-760718d94953/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"fd2e01c61f38baa52f5afe385e810543","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:32:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/24bc34de-462f-44da-b819-2c8234f55ab4/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":"fd2e01c61f38baa52f5afe385e810543"} device-1 | {"level":"info","message":"OPTIONS /devices/24bc34de-462f-44da-b819-2c8234f55ab4/websocket 200 1ms","method":"OPTIONS","requestID":"fd2e01c61f38baa52f5afe385e810543","responseTime":1,"status":200,"url":"/devices/24bc34de-462f-44da-b819-2c8234f55ab4/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2e4f63e1b7c7f0d4d8a3d21c25b9068a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.807183,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/24bc34de-462f-44da-b819-2c8234f55ab4","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/24bc34de-462f-44da-b819-2c8234f55ab4","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382779,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU"} 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":"2e4f63e1b7c7f0d4d8a3d21c25b9068a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:32:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/24bc34de-462f-44da-b819-2c8234f55ab4/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.024","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2e4f63e1b7c7f0d4d8a3d21c25b9068a"} device-1 | {"level":"info","message":"POST /devices/24bc34de-462f-44da-b819-2c8234f55ab4/websocket 200 19ms","method":"POST","requestID":"2e4f63e1b7c7f0d4d8a3d21c25b9068a","responseTime":19,"status":200,"url":"/devices/24bc34de-462f-44da-b819-2c8234f55ab4/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/24bc34de-462f-44da-b819-2c8234f55ab4' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"584b0ea7eb1436502cdb2f86e1ddcee0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.696666,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/24bc34de-462f-44da-b819-2c8234f55ab4","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/24bc34de-462f-44da-b819-2c8234f55ab4","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382779,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU"} 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":"584b0ea7eb1436502cdb2f86e1ddcee0"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24bc34de-462f-44da-b819-2c8234f55ab4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24bc34de-462f-44da-b819-2c8234f55ab4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:57.348234748Z"}]},"request_id":"d41a9c8a-b595-4c23-9e16-ceb2d480fff8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.3921795} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"584b0ea7eb1436502cdb2f86e1ddcee0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:32:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/24bc34de-462f-44da-b819-2c8234f55ab4? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"584b0ea7eb1436502cdb2f86e1ddcee0"} device-1 | {"level":"info","message":"GET /devices/24bc34de-462f-44da-b819-2c8234f55ab4? 200 13ms","method":"GET","requestID":"584b0ea7eb1436502cdb2f86e1ddcee0","responseTime":13,"status":200,"url":"/devices/24bc34de-462f-44da-b819-2c8234f55ab4?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f731f42a5ec24455dc9c2c785a31b67a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.688432,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382779,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU"} 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":"f731f42a5ec24455dc9c2c785a31b67a"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:57.404885870Z"}]},"request_id":"a4f1b2d8-7564-4cd4-9d1e-c35cd1aaffc2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.4102976} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f731f42a5ec24455dc9c2c785a31b67a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:32:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3fb61447-3d0c-4040-b4a1-760718d94953? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f731f42a5ec24455dc9c2c785a31b67a"} device-1 | {"level":"info","message":"GET /devices/3fb61447-3d0c-4040-b4a1-760718d94953? 200 13ms","method":"GET","requestID":"f731f42a5ec24455dc9c2c785a31b67a","responseTime":13,"status":200,"url":"/devices/3fb61447-3d0c-4040-b4a1-760718d94953?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b35cc4b1ec518a132987eb65f5a75073","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:48592","level":"info","msg":"Received request.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.976178,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382779,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU"} 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":"b35cc4b1ec518a132987eb65f5a75073"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"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:48592","level":"info","msg":"Received request.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.682081,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/24bc34de-462f-44da-b819-2c8234f55ab4","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/24bc34de-462f-44da-b819-2c8234f55ab4","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382779,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c3156040-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.792997,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382779,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c315ae60-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24bc34de-462f-44da-b819-2c8234f55ab4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24bc34de-462f-44da-b819-2c8234f55ab4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:57.348234748Z"}]},"request_id":"c311a541-192f-4dad-94dd-65085aecfac8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.470247} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c3156040-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:57.404885870Z"}]},"request_id":"deef739f-70e3-47fc-9738-fc74e3497d45","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.470983} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c315ae60-2a6b-11ef-8ad5-3d996a2c698c"},"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/24bc34de-462f-44da-b819-2c8234f55ab4? 200 15ms","method":"GET","requestID":"c3156040-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/24bc34de-462f-44da-b819-2c8234f55ab4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/3fb61447-3d0c-4040-b4a1-760718d94953? 200 14ms","method":"GET","requestID":"c315ae60-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/3fb61447-3d0c-4040-b4a1-760718d94953?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"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/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.933867,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/24bc34de-462f-44da-b819-2c8234f55ab4","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/24bc34de-462f-44da-b819-2c8234f55ab4","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382779,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c31e60f0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.792059,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382779,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c31eaf10-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24bc34de-462f-44da-b819-2c8234f55ab4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24bc34de-462f-44da-b819-2c8234f55ab4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:57.348234748Z"}]},"request_id":"22ccefc7-0696-49fe-9f32-8f62316ed55b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.5300376} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c31e60f0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:57.404885870Z"}]},"request_id":"9a448d92-ade3-469c-9b4e-0706afa76d13","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.5309165} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c31eaf10-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F20feffb1-0021-4230-9d5c-e3da6aa3e567#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F20feffb1-0021-4230-9d5c-e3da6aa3e567","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"52fd05ed-fc33-49b7-9127-04b034fe0e3c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.5348942} 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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"389b87e4-378b-4d7e-82a3-68ff4f737422","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.5351698} device-1 | {"level":"info","message":"GET /devices/24bc34de-462f-44da-b819-2c8234f55ab4? 200 17ms","method":"GET","requestID":"c31e60f0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":17,"status":200,"url":"/devices/24bc34de-462f-44da-b819-2c8234f55ab4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/3fb61447-3d0c-4040-b4a1-760718d94953? 200 16ms","method":"GET","requestID":"c31eaf10-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/3fb61447-3d0c-4040-b4a1-760718d94953?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b35cc4b1ec518a132987eb65f5a75073"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.696009,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/24bc34de-462f-44da-b819-2c8234f55ab4","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/24bc34de-462f-44da-b819-2c8234f55ab4","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c3219540-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:32:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.130","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b35cc4b1ec518a132987eb65f5a75073"} experiment-1 | {"level":"info","message":"POST /experiments? 201 126ms","method":"POST","requestID":"b35cc4b1ec518a132987eb65f5a75073","responseTime":126,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/24bc34de-462f-44da-b819-2c8234f55ab4/signaling 200 9ms","method":"POST","requestID":"c3219540-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/devices/24bc34de-462f-44da-b819-2c8234f55ab4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f89bdc4aff3af0a46ac778bee57f62d2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.964593,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c3236a00-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.628994,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/24bc34de-462f-44da-b819-2c8234f55ab4","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/24bc34de-462f-44da-b819-2c8234f55ab4","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382779,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f89bdc4aff3af0a46ac778bee57f62d2"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24bc34de-462f-44da-b819-2c8234f55ab4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F24bc34de-462f-44da-b819-2c8234f55ab4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:57.348234748Z"}]},"request_id":"aa7f1679-a5a2-4a47-8e75-e89bd50396a6","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.5626929} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f89bdc4aff3af0a46ac778bee57f62d2"},"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/3fb61447-3d0c-4040-b4a1-760718d94953/signaling 200 14ms","method":"POST","requestID":"c3236a00-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/3fb61447-3d0c-4040-b4a1-760718d94953/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"7ae97ca2-d07a-44f5-a1c8-ac0175e6d514"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"bc3b39ed-fd7b-4115-ba21-6a87de5302c0"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"ec959e70-258b-4883-b4fc-1c0966f75cff"}]},"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/24bc34de-462f-44da-b819-2c8234f55ab4"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} gateway-1 | {"time_local":"14/Jun/2024:16:32:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/24bc34de-462f-44da-b819-2c8234f55ab4? 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":"f89bdc4aff3af0a46ac778bee57f62d2"} device-1 | {"level":"info","message":"GET /devices/24bc34de-462f-44da-b819-2c8234f55ab4? 200 15ms","method":"GET","requestID":"f89bdc4aff3af0a46ac778bee57f62d2","responseTime":15,"status":200,"url":"/devices/24bc34de-462f-44da-b819-2c8234f55ab4?"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.685477,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"56dc29cad857602994e5dd702e2d7862","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382779,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"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":"c3262920-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.888765,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382779,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU"} 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":"56dc29cad857602994e5dd702e2d7862"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3fb61447-3d0c-4040-b4a1-760718d94953","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:32:57.404885870Z"}]},"request_id":"a20939ca-b0d7-4058-b704-e580ea4d6e8f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.584084} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56dc29cad857602994e5dd702e2d7862"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"65b82962-4a58-40b3-a1b4-902645105440","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.5855947} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4d059a25-cb88-43fa-9bb6-63347cc19004","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.5858743} 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":"c3262920-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:32:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3fb61447-3d0c-4040-b4a1-760718d94953? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"56dc29cad857602994e5dd702e2d7862"} device-1 | {"level":"info","message":"GET /devices/3fb61447-3d0c-4040-b4a1-760718d94953? 200 15ms","method":"GET","requestID":"56dc29cad857602994e5dd702e2d7862","responseTime":15,"status":200,"url":"/devices/3fb61447-3d0c-4040-b4a1-760718d94953?"} 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/4a923a4c-f402-4aa9-8870-0bac1661b167'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4a923a4c-f402-4aa9-8870-0bac1661b167'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 30ms","method":"POST","requestID":"c3262920-2a6b-11ef-8ad5-3d996a2c698c","responseTime":30,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"4a923a4c-f402-4aa9-8870-0bac1661b167","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4a923a4c-f402-4aa9-8870-0bac1661b167' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4a923a4c-f402-4aa9-8870-0bac1661b167","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} 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/24bc34de-462f-44da-b819-2c8234f55ab4"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4a923a4c-f402-4aa9-8870-0bac1661b167"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"221d84629a35c25bc5e420f745176469","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"221d84629a35c25bc5e420f745176469","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:32:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"221d84629a35c25bc5e420f745176469"} device-1 | {"data":{"peerconnection":"4a923a4c-f402-4aa9-8870-0bac1661b167","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"4a923a4c-f402-4aa9-8870-0bac1661b167","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/4a923a4c-f402-4aa9-8870-0bac1661b167' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4a923a4c-f402-4aa9-8870-0bac1661b167","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"81ad53c56000e4d3a474281cabaf062e","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/24bc34de-462f-44da-b819-2c8234f55ab4"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4a923a4c-f402-4aa9-8870-0bac1661b167"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4a923a4c-f402-4aa9-8870-0bac1661b167","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7c1cd083-207b-4ece-bf76-8febad8f2b92","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.7074356} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.321359,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4a923a4c-f402-4aa9-8870-0bac1661b167","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4a923a4c-f402-4aa9-8870-0bac1661b167","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":"c33a4d60-2a6b-11ef-8ad5-3d996a2c698c"},"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/4a923a4c-f402-4aa9-8870-0bac1661b167 200 9ms","method":"GET","requestID":"c33a4d60-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/peerconnections/4a923a4c-f402-4aa9-8870-0bac1661b167"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 27ms","method":"POST","requestID":"81ad53c56000e4d3a474281cabaf062e","responseTime":27,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:32:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch","requestID":"81ad53c56000e4d3a474281cabaf062e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bc39e76609f11f59c52e2fa0bc287f06","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.333952,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382779,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU"} 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":"bc39e76609f11f59c52e2fa0bc287f06"},"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/20feffb1-0021-4230-9d5c-e3da6aa3e567"} gateway-1 | {"time_local":"14/Jun/2024:16:32:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567 HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bc39e76609f11f59c52e2fa0bc287f06"} experiment-1 | {"level":"info","message":"GET /experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567 200 14ms","method":"GET","requestID":"bc39e76609f11f59c52e2fa0bc287f06","responseTime":14,"status":200,"url":"/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0cc8f7770fe1e450b227c38c2d9d0ff3","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.736166,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382779,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU"} 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":"0cc8f7770fe1e450b227c38c2d9d0ff3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.673641,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:32:59Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4a923a4c-f402-4aa9-8870-0bac1661b167","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/4a923a4c-f402-4aa9-8870-0bac1661b167","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382779,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc3OX0.l7-aZ5OeBqSL-DQcySxDcDfHfP6lkgsw0cVFnBtQIAU"} 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":"c34c27b0-2a6b-11ef-8ad5-3d996a2c698c"},"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/4a923a4c-f402-4aa9-8870-0bac1661b167' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4a923a4c-f402-4aa9-8870-0bac1661b167' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4a923a4c-f402-4aa9-8870-0bac1661b167","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"031a8027c1fe60761fd43cad0ac2d461","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4a923a4c-f402-4aa9-8870-0bac1661b167': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4a923a4c-f402-4aa9-8870-0bac1661b167","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"b53a47d5-a0ef-46d8-9de7-fa7b2944fbff","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.837667} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"18534c89-c5cb-4f81-8bc1-8d99ebb47a8f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382779.8380268} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"db2b3df0d2e4622a78c6edbaaaf751a2","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/24bc34de-462f-44da-b819-2c8234f55ab4"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4a923a4c-f402-4aa9-8870-0bac1661b167"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c34c27b0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/24bc34de-462f-44da-b819-2c8234f55ab4"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/3fb61447-3d0c-4040-b4a1-760718d94953"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4a923a4c-f402-4aa9-8870-0bac1661b167"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"4a923a4c-f402-4aa9-8870-0bac1661b167","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/4a923a4c-f402-4aa9-8870-0bac1661b167 204 38ms","method":"DELETE","requestID":"c34c27b0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":38,"status":204,"url":"/peerconnections/4a923a4c-f402-4aa9-8870-0bac1661b167"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F20feffb1-0021-4230-9d5c-e3da6aa3e567': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F20feffb1-0021-4230-9d5c-e3da6aa3e567","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"9d357e81-51fb-4805-ba85-3c7aa5b592cd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382780.123247} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b4dae401-0ccb-408e-a52f-94cdf8dba3df","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382780.123625} authorization-1 | {"level":"info","message":"POST /relations/update 200 164ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0cc8f7770fe1e450b227c38c2d9d0ff3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":164}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"} gateway-1 | {"time_local":"14/Jun/2024:16:33:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.523","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0cc8f7770fe1e450b227c38c2d9d0ff3"} gateway-1 | {"time_local":"14/Jun/2024:16:33:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1438","request_time":"2.207","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d8cb0db66a4632a4c3ad4932eb5fb871"} experiment-1 | {"level":"info","message":"DELETE /experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567 204 520ms","method":"DELETE","requestID":"0cc8f7770fe1e450b227c38c2d9d0ff3","responseTime":520,"status":204,"url":"/experiments/20feffb1-0021-4230-9d5c-e3da6aa3e567"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 492ms","method":"POST","requestID":"031a8027c1fe60761fd43cad0ac2d461","responseTime":492,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.496","http_referrer":"","http_user_agent":"node-fetch","requestID":"031a8027c1fe60761fd43cad0ac2d461"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 491ms","method":"POST","requestID":"db2b3df0d2e4622a78c6edbaaaf751a2","responseTime":491,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.498","http_referrer":"","http_user_agent":"node-fetch","requestID":"db2b3df0d2e4622a78c6edbaaaf751a2"} gateway-1 | {"time_local":"14/Jun/2024:16:33:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1521","request_time":"0.972","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"bafc528e2abdfd70c133e2a8a5d3a9f3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4MH0.7hfkp0WEiI7ZDr9_8NCI8-OWmkMJAFpZJUcjQa9EgoI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 10ms","method":"GET","requestID":"0274f3b0a102310b48de909b4dd6911c","responseTime":10,"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/3fb61447-3d0c-4040-b4a1-760718d94953' closed"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:00Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.717169,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382780,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4MH0.7hfkp0WEiI7ZDr9_8NCI8-OWmkMJAFpZJUcjQa9EgoI"} 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":"0274f3b0a102310b48de909b4dd6911c"},"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/24bc34de-462f-44da-b819-2c8234f55ab4' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4c697d27-af89-4f75-b108-f40b77b728ae","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382780.3606298} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0274f3b0a102310b48de909b4dd6911c"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"711e639c-3537-40d7-9ef0-42cf201442de","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382780.3659647} 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":"0274f3b0a102310b48de909b4dd6911c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"0ce8b0c4-0ec2-4d5c-8472-2c9b2da70480","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382780.3770018} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8ca24cdf-d6e6-4a33-a74b-eed544a10a23","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382780.3772774} 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":"0274f3b0a102310b48de909b4dd6911c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:00.376989496Z"}]},"request_id":"c21c5098-bddd-4626-8bb6-8f40c68d39e1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382780.3820934} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0274f3b0a102310b48de909b4dd6911c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0274f3b0a102310b48de909b4dd6911c"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"0274f3b0a102310b48de909b4dd6911c","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4MH0.7hfkp0WEiI7ZDr9_8NCI8-OWmkMJAFpZJUcjQa9EgoI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"43bcde71c1d55a14626714b1aee89fed","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:00Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.714024,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382780,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4MH0.7hfkp0WEiI7ZDr9_8NCI8-OWmkMJAFpZJUcjQa9EgoI"} 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":"43bcde71c1d55a14626714b1aee89fed"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d7c53a3-3e15-466f-bfb7-ac7469752cc7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"01e9a7cb-bcd2-4978-9768-fac682f91100","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382780.5381255} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43bcde71c1d55a14626714b1aee89fed"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3a867958-6615-4304-b545-061128124d0f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382780.543149} 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":"43bcde71c1d55a14626714b1aee89fed"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d7c53a3-3e15-466f-bfb7-ac7469752cc7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"f2740a5e-ad4d-4c78-8bb5-211d3b62fea0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382780.7641392} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"63b537e7-7a70-4b7c-812d-00ae5fdfadda","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382780.7643495} authorization-1 | {"level":"info","message":"POST /relations/update 200 223ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43bcde71c1d55a14626714b1aee89fed"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":223}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d7c53a3-3e15-466f-bfb7-ac7469752cc7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d7c53a3-3e15-466f-bfb7-ac7469752cc7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:00.764127947Z"}]},"request_id":"2a8c7aa9-913e-4641-b2a6-9481c2525c9e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382780.7687795} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43bcde71c1d55a14626714b1aee89fed"},"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 381ms","method":"POST","requestID":"43bcde71c1d55a14626714b1aee89fed","responseTime":381,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.385","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"43bcde71c1d55a14626714b1aee89fed"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4MX0.MhQGcdUmPkeWukK23KIuO10gzFR3nBcNIJnyiD0Mbfg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fc5f93331cb1e41f580cbf0461f6f1f3","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:01Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.646598,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382781,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4MX0.MhQGcdUmPkeWukK23KIuO10gzFR3nBcNIJnyiD0Mbfg"} 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":"fc5f93331cb1e41f580cbf0461f6f1f3"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:00.376989496Z"}]},"request_id":"10b961a0-2e09-4644-a194-b179bb76f9f1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382781.3102758} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fc5f93331cb1e41f580cbf0461f6f1f3"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"975edf30-c77d-42de-a1b5-dcfb78dc7537","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382781.3152425} 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":"fc5f93331cb1e41f580cbf0461f6f1f3"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:00.376989496Z"}]},"request_id":"d9801045-c376-4b57-bb98-b354830e5e34","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382781.4810426} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fc5f93331cb1e41f580cbf0461f6f1f3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/bc080f3b-ed96-4849-9537-65a690863c36 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.186","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"fc5f93331cb1e41f580cbf0461f6f1f3"} device-1 | {"level":"info","message":"PATCH /devices/bc080f3b-ed96-4849-9537-65a690863c36 200 182ms","method":"PATCH","requestID":"fc5f93331cb1e41f580cbf0461f6f1f3","responseTime":182,"status":200,"url":"/devices/bc080f3b-ed96-4849-9537-65a690863c36"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4MX0.MhQGcdUmPkeWukK23KIuO10gzFR3nBcNIJnyiD0Mbfg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3afaf9ee72942188ded9d38f4915fb94","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:01Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.710846,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382781,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4MX0.MhQGcdUmPkeWukK23KIuO10gzFR3nBcNIJnyiD0Mbfg"} 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":"3afaf9ee72942188ded9d38f4915fb94"},"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/bc080f3b-ed96-4849-9537-65a690863c36/websocket 200 117ms","method":"POST","requestID":"3afaf9ee72942188ded9d38f4915fb94","responseTime":117,"status":200,"url":"/devices/bc080f3b-ed96-4849-9537-65a690863c36/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:33:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/bc080f3b-ed96-4849-9537-65a690863c36/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.120","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3afaf9ee72942188ded9d38f4915fb94"} device-1 | {"level":"info","message":"device 'http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e3dd4dae8e639d59e79dd626d4ab4c2a","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7/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":"e3dd4dae8e639d59e79dd626d4ab4c2a"} device-1 | {"level":"info","message":"OPTIONS /devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7/websocket 200 1ms","method":"OPTIONS","requestID":"e3dd4dae8e639d59e79dd626d4ab4c2a","responseTime":1,"status":200,"url":"/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4923cda6ce9efa53c5dea6811c160266","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.674931,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382782,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo"} 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":"4923cda6ce9efa53c5dea6811c160266"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7/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":"4923cda6ce9efa53c5dea6811c160266"} device-1 | {"level":"info","message":"POST /devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7/websocket 200 43ms","method":"POST","requestID":"4923cda6ce9efa53c5dea6811c160266","responseTime":43,"status":200,"url":"/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"788c8f9028a53e81f602a981ff8db31a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.733523,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382782,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo"} 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":"788c8f9028a53e81f602a981ff8db31a"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:00.376989496Z"}]},"request_id":"5ac6dd72-4037-4b37-aaf9-609dce4b5b2d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382782.8031628} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"788c8f9028a53e81f602a981ff8db31a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bc080f3b-ed96-4849-9537-65a690863c36? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"788c8f9028a53e81f602a981ff8db31a"} device-1 | {"level":"info","message":"GET /devices/bc080f3b-ed96-4849-9537-65a690863c36? 200 13ms","method":"GET","requestID":"788c8f9028a53e81f602a981ff8db31a","responseTime":13,"status":200,"url":"/devices/bc080f3b-ed96-4849-9537-65a690863c36?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"42ba38801ed0c75eeaed89d9813a3f0d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.754204,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382782,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo"} 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":"42ba38801ed0c75eeaed89d9813a3f0d"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d7c53a3-3e15-466f-bfb7-ac7469752cc7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d7c53a3-3e15-466f-bfb7-ac7469752cc7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:00.764127947Z"}]},"request_id":"bad74d80-0ef2-45d9-bfec-dcbc8c89fba2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382782.8206244} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"42ba38801ed0c75eeaed89d9813a3f0d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7? 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":"42ba38801ed0c75eeaed89d9813a3f0d"} device-1 | {"level":"info","message":"GET /devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7? 200 12ms","method":"GET","requestID":"42ba38801ed0c75eeaed89d9813a3f0d","responseTime":12,"status":200,"url":"/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"70b8d9e0679152ecff3170ae1895182c","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:48592","level":"info","msg":"Received request.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.931932,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382782,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo"} 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":"70b8d9e0679152ecff3170ae1895182c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"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:48592","level":"info","msg":"Received request.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.882412,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382782,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c51d6540-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.988148,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382782,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c51d8c50-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:00.376989496Z"}]},"request_id":"42ca342f-afa4-4eff-a06a-33019ef7da3e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382782.8777328} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c51d6540-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d7c53a3-3e15-466f-bfb7-ac7469752cc7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d7c53a3-3e15-466f-bfb7-ac7469752cc7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:00.764127947Z"}]},"request_id":"9cc6b77e-f091-476f-856d-c3baa0a14786","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382782.878892} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c51d8c50-2a6b-11ef-8ad5-3d996a2c698c"},"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/bc080f3b-ed96-4849-9537-65a690863c36? 200 16ms","method":"GET","requestID":"c51d6540-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/bc080f3b-ed96-4849-9537-65a690863c36?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7? 200 16ms","method":"GET","requestID":"c51d8c50-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"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/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.666598,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382782,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo"} 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":"c5270230-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.769132,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382782,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c5275050-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:00.376989496Z"}]},"request_id":"1dc35190-60f2-4a3c-9ab1-dd2f756b0b37","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382782.9413059} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c5270230-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d7c53a3-3e15-466f-bfb7-ac7469752cc7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d7c53a3-3e15-466f-bfb7-ac7469752cc7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:00.764127947Z"}]},"request_id":"f4c1aa29-b16f-4f15-858b-50554e7bbbf7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382782.9421232} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c5275050-2a6b-11ef-8ad5-3d996a2c698c"},"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/bc080f3b-ed96-4849-9537-65a690863c36? 200 16ms","method":"GET","requestID":"c5270230-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/bc080f3b-ed96-4849-9537-65a690863c36?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7? 200 16ms","method":"GET","requestID":"c5275050-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1f0b458f-5b35-4d6b-92ee-60c999f90bda#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1f0b458f-5b35-4d6b-92ee-60c999f90bda","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"2783e6fb-fbda-4e31-b67d-6531951ab16c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382782.9545825} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ee7d334c-0422-461f-a128-40bf8c6af1b0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382782.9547505} 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":"70b8d9e0679152ecff3170ae1895182c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.675231,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c52a0f70-2a6b-11ef-8ad5-3d996a2c698c"},"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/bc080f3b-ed96-4849-9537-65a690863c36/signaling 200 11ms","method":"POST","requestID":"c52a0f70-2a6b-11ef-8ad5-3d996a2c698c","responseTime":11,"status":200,"url":"/devices/bc080f3b-ed96-4849-9537-65a690863c36/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 132ms","method":"POST","requestID":"70b8d9e0679152ecff3170ae1895182c","responseTime":132,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.137","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"70b8d9e0679152ecff3170ae1895182c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e8787d12842319595fdcc0ed08bc1cd4","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.718575,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c52c5960-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.840384,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382782,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e8787d12842319595fdcc0ed08bc1cd4"},"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/7d7c53a3-3e15-466f-bfb7-ac7469752cc7/signaling 200 12ms","method":"POST","requestID":"c52c5960-2a6b-11ef-8ad5-3d996a2c698c","responseTime":12,"status":200,"url":"/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"650ed056-97f7-4c35-8266-15587cc86658"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"19de0ad0-ea38-4b2a-a677-c07168ce93f2"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"999b2081-b4ca-4cec-8099-dee51abf73d1"}]},"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/bc080f3b-ed96-4849-9537-65a690863c36"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbc080f3b-ed96-4849-9537-65a690863c36","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:00.376989496Z"}]},"request_id":"993e1bfa-bc08-4a10-bf21-46bc301ae06f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382782.980914} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e8787d12842319595fdcc0ed08bc1cd4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.949177,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:02Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bc080f3b-ed96-4849-9537-65a690863c36? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e8787d12842319595fdcc0ed08bc1cd4"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382782,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo"} device-1 | {"level":"info","message":"GET /devices/bc080f3b-ed96-4849-9537-65a690863c36? 200 19ms","method":"GET","requestID":"e8787d12842319595fdcc0ed08bc1cd4","responseTime":19,"status":200,"url":"/devices/bc080f3b-ed96-4849-9537-65a690863c36?"} 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":"c52eca60-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"46b28bbf40570f25160867291498bd9a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"7c11e1b6-552f-485a-ad96-60db129c2d6d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382782.9983315} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bbd9e467-d749-436b-9858-54dbcb26098f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382782.9986215} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:02Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.000925,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:02Z"} 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":"c52eca60-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382782,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Mn0.BCfNGvof8L8qH5Bulg_DZ9nW3c9FKZoxmuZmigpUQmo"} 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":"46b28bbf40570f25160867291498bd9a"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d7c53a3-3e15-466f-bfb7-ac7469752cc7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d7c53a3-3e15-466f-bfb7-ac7469752cc7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:00.764127947Z"}]},"request_id":"8c770177-02bd-42d1-b430-58c2aeccaf3d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382783.005728} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"46b28bbf40570f25160867291498bd9a"},"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/96b22ada-a82b-4e49-ba8f-48163f673ab4'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/96b22ada-a82b-4e49-ba8f-48163f673ab4'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 34ms","method":"POST","requestID":"c52eca60-2a6b-11ef-8ad5-3d996a2c698c","responseTime":34,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7? 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":"46b28bbf40570f25160867291498bd9a"} device-1 | {"level":"info","message":"GET /devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7? 200 24ms","method":"GET","requestID":"46b28bbf40570f25160867291498bd9a","responseTime":24,"status":200,"url":"/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"data":{"peerconnection":"96b22ada-a82b-4e49-ba8f-48163f673ab4","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/96b22ada-a82b-4e49-ba8f-48163f673ab4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"96b22ada-a82b-4e49-ba8f-48163f673ab4","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"677bd50304aa92d081ff66827d4eb9c9","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/bc080f3b-ed96-4849-9537-65a690863c36"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/96b22ada-a82b-4e49-ba8f-48163f673ab4"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"677bd50304aa92d081ff66827d4eb9c9","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"677bd50304aa92d081ff66827d4eb9c9"} device-1 | {"data":{"peerconnection":"96b22ada-a82b-4e49-ba8f-48163f673ab4","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"96b22ada-a82b-4e49-ba8f-48163f673ab4","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/96b22ada-a82b-4e49-ba8f-48163f673ab4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"96b22ada-a82b-4e49-ba8f-48163f673ab4","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7765e703768c3ad9bc9e56affd5ea261","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/bc080f3b-ed96-4849-9537-65a690863c36"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/96b22ada-a82b-4e49-ba8f-48163f673ab4"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F96b22ada-a82b-4e49-ba8f-48163f673ab4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"671c7ff9-1f4d-4472-9e47-9a966b8dc34b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.1374097} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.162056,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/96b22ada-a82b-4e49-ba8f-48163f673ab4","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/96b22ada-a82b-4e49-ba8f-48163f673ab4","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":"c5de1d30-2a6b-11ef-8ad5-3d996a2c698c"},"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/96b22ada-a82b-4e49-ba8f-48163f673ab4 200 11ms","method":"GET","requestID":"c5de1d30-2a6b-11ef-8ad5-3d996a2c698c","responseTime":11,"status":200,"url":"/peerconnections/96b22ada-a82b-4e49-ba8f-48163f673ab4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 38ms","method":"POST","requestID":"7765e703768c3ad9bc9e56affd5ea261","responseTime":38,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.041","http_referrer":"","http_user_agent":"node-fetch","requestID":"7765e703768c3ad9bc9e56affd5ea261"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d9047bd067444148d3081a8a2f80a25c","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.689673,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382784,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc"} 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":"d9047bd067444148d3081a8a2f80a25c"},"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/1f0b458f-5b35-4d6b-92ee-60c999f90bda"} gateway-1 | {"time_local":"14/Jun/2024:16:33:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d9047bd067444148d3081a8a2f80a25c"} experiment-1 | {"level":"info","message":"GET /experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda 200 12ms","method":"GET","requestID":"d9047bd067444148d3081a8a2f80a25c","responseTime":12,"status":200,"url":"/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"11690d201b9e3efc4c865d6e73409c56","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.676351,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382784,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc"} 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":"11690d201b9e3efc4c865d6e73409c56"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.684027,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/96b22ada-a82b-4e49-ba8f-48163f673ab4","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/96b22ada-a82b-4e49-ba8f-48163f673ab4","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382784,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc"} 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":"c5ef3430-2a6b-11ef-8ad5-3d996a2c698c"},"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/96b22ada-a82b-4e49-ba8f-48163f673ab4' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/96b22ada-a82b-4e49-ba8f-48163f673ab4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"96b22ada-a82b-4e49-ba8f-48163f673ab4","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F96b22ada-a82b-4e49-ba8f-48163f673ab4': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F96b22ada-a82b-4e49-ba8f-48163f673ab4","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"e27e4ebe-d167-458c-aab9-702093ff03e9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.2644339} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"eb9299384bfea4db01a9b26e3470d4d9","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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4220fa30-ebfb-4a64-bb43-0cab1b8f3dba","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.2649887} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"fd03a97b40beab636c37ba9e3290a264","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/96b22ada-a82b-4e49-ba8f-48163f673ab4"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c5ef3430-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/bc080f3b-ed96-4849-9537-65a690863c36"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7d7c53a3-3e15-466f-bfb7-ac7469752cc7"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/96b22ada-a82b-4e49-ba8f-48163f673ab4"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"96b22ada-a82b-4e49-ba8f-48163f673ab4","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/96b22ada-a82b-4e49-ba8f-48163f673ab4 204 38ms","method":"DELETE","requestID":"c5ef3430-2a6b-11ef-8ad5-3d996a2c698c","responseTime":38,"status":204,"url":"/peerconnections/96b22ada-a82b-4e49-ba8f-48163f673ab4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1f0b458f-5b35-4d6b-92ee-60c999f90bda': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1f0b458f-5b35-4d6b-92ee-60c999f90bda","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"5fd684f3-eca5-4a42-aa08-e8de8eb28f0b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.310469} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5b87042e-88f4-45de-84dc-9249bfad81ee","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.310735} 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":"11690d201b9e3efc4c865d6e73409c56"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"} gateway-1 | {"time_local":"14/Jun/2024:16:33:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.132","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"11690d201b9e3efc4c865d6e73409c56"} experiment-1 | {"level":"info","message":"DELETE /experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda 204 130ms","method":"DELETE","requestID":"11690d201b9e3efc4c865d6e73409c56","responseTime":130,"status":204,"url":"/experiments/1f0b458f-5b35-4d6b-92ee-60c999f90bda"} gateway-1 | {"time_local":"14/Jun/2024:16:33:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1757","request_time":"2.757","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"2a81c5465991ad7c78bcd3c0d6121d5f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 98ms","method":"POST","requestID":"eb9299384bfea4db01a9b26e3470d4d9","responseTime":98,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 98ms","method":"POST","requestID":"fd03a97b40beab636c37ba9e3290a264","responseTime":98,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.104","http_referrer":"","http_user_agent":"node-fetch","requestID":"eb9299384bfea4db01a9b26e3470d4d9"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.104","http_referrer":"","http_user_agent":"node-fetch","requestID":"fd03a97b40beab636c37ba9e3290a264"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7c827e2df6c4a68d725be91792ab206f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.059554,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382784,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc"} 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":"7c827e2df6c4a68d725be91792ab206f"},"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/bc080f3b-ed96-4849-9537-65a690863c36' closed"} gateway-1 | {"time_local":"14/Jun/2024:16:33:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1516","request_time":"1.599","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"93b590e9e961e38803e44be6289f7b7e"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3af2e3e3-bb2e-42bf-84be-5a870b190eb8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.3892248} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c827e2df6c4a68d725be91792ab206f"},"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/7d7c53a3-3e15-466f-bfb7-ac7469752cc7' 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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3e133b29-dc54-446c-88aa-411701bfee3a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.3949614} 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":"7c827e2df6c4a68d725be91792ab206f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"52109d7e-1935-4420-99cf-2f4e213b162c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.4103389} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cef5f9d8-48cd-4899-bd79-14eaa01a6024","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.4104738} 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":"7c827e2df6c4a68d725be91792ab206f"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:04.410326666Z"}]},"request_id":"9c685034-ad50-4549-94fb-4beea4a8ec1d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.4155087} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c827e2df6c4a68d725be91792ab206f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7c827e2df6c4a68d725be91792ab206f"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"7c827e2df6c4a68d725be91792ab206f","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"234684ab5334416f7b081d2c9b4052ab","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.76205,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382784,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc"} 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":"234684ab5334416f7b081d2c9b4052ab"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0b64e413-c011-4ceb-8867-c6a1628b890d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.440333} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"234684ab5334416f7b081d2c9b4052ab"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2e9c89b8-1a9d-4e66-b5c2-4de87423409b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.4452767} 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":"234684ab5334416f7b081d2c9b4052ab"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"4279a84b-9e0a-46b6-a668-d0407adba014","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.4562302} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2211d8bc-0832-47c3-8860-261d34f4926c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.4565463} 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":"234684ab5334416f7b081d2c9b4052ab"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:04.456217592Z"}]},"request_id":"f60dbff9-bb54-4e61-9076-7b0be2df8ee6","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.4608169} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"234684ab5334416f7b081d2c9b4052ab"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"234684ab5334416f7b081d2c9b4052ab"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"234684ab5334416f7b081d2c9b4052ab","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e5b79e431f666f14ca7caea3f8b5c6f3","responseTime":3,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4d1bf3605b15fb281201e6c63882e08f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.97803,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382784,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc"} 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":"e5b79e431f666f14ca7caea3f8b5c6f3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.892352,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382784,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4d1bf3605b15fb281201e6c63882e08f"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:04.456217592Z"}]},"request_id":"e72361b8-9e5e-485e-8ab1-964e7309167e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.9767816} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e5b79e431f666f14ca7caea3f8b5c6f3"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:04.410326666Z"}]},"request_id":"be57eb2a-f340-41e9-b20f-47d3d5b1d688","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.977995} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4d1bf3605b15fb281201e6c63882e08f"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e453ab15-210c-4530-bbfc-67e7a56cada0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.982549} 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":"e5b79e431f666f14ca7caea3f8b5c6f3"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"89adaf30-b85b-46c1-a680-e257884af58a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.984388} 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":"4d1bf3605b15fb281201e6c63882e08f"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:04.456217592Z"}]},"request_id":"da92f7c2-0424-4d83-a1fb-fafaffc7a546","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.9893982} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e5b79e431f666f14ca7caea3f8b5c6f3"},"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/4d8624c0-ccad-41fb-8e46-5128846eae0b 200 26ms","method":"PATCH","requestID":"e5b79e431f666f14ca7caea3f8b5c6f3","responseTime":26,"status":200,"url":"/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b"} gateway-1 | {"time_local":"14/Jun/2024:16:33:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4d8624c0-ccad-41fb-8e46-5128846eae0b HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.031","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e5b79e431f666f14ca7caea3f8b5c6f3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc","level":"info","message":"auth send jwt"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:04.410326666Z"}]},"request_id":"0887076b-6fae-4c29-b857-0b87d61fc8dc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382784.9960294} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4c00ce14e1d2d00643faeb88dfca93af","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4d1bf3605b15fb281201e6c63882e08f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/16021457-6e92-404b-8761-c795b04d5bf9 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.039","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4d1bf3605b15fb281201e6c63882e08f"} device-1 | {"level":"info","message":"PATCH /devices/16021457-6e92-404b-8761-c795b04d5bf9 200 32ms","method":"PATCH","requestID":"4d1bf3605b15fb281201e6c63882e08f","responseTime":32,"status":200,"url":"/devices/16021457-6e92-404b-8761-c795b04d5bf9"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:04Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.710647,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382784,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NH0.V8A5N2XxMAc6cL7Cfozn4xfcUQB_Cw29dvIuGCMQmgc"} 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":"4c00ce14e1d2d00643faeb88dfca93af"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9ccefb653202a6c8b5460af5930f5fa8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.710458,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"9ccefb653202a6c8b5460af5930f5fa8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4d8624c0-ccad-41fb-8e46-5128846eae0b/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":"4c00ce14e1d2d00643faeb88dfca93af"} device-1 | {"level":"info","message":"POST /devices/4d8624c0-ccad-41fb-8e46-5128846eae0b/websocket 200 16ms","method":"POST","requestID":"4c00ce14e1d2d00643faeb88dfca93af","responseTime":16,"status":200,"url":"/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/16021457-6e92-404b-8761-c795b04d5bf9/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":"9ccefb653202a6c8b5460af5930f5fa8"} device-1 | {"level":"info","message":"POST /devices/16021457-6e92-404b-8761-c795b04d5bf9/websocket 200 21ms","method":"POST","requestID":"9ccefb653202a6c8b5460af5930f5fa8","responseTime":21,"status":200,"url":"/devices/16021457-6e92-404b-8761-c795b04d5bf9/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b57a2709b983623c0b6762072e2dbcba","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.908509,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"b57a2709b983623c0b6762072e2dbcba"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:04.410326666Z"}]},"request_id":"bff69858-124e-46df-acae-baf95958e3f5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.056381} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b57a2709b983623c0b6762072e2dbcba"},"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/16021457-6e92-404b-8761-c795b04d5bf9? 200 13ms","method":"GET","requestID":"b57a2709b983623c0b6762072e2dbcba","responseTime":13,"status":200,"url":"/devices/16021457-6e92-404b-8761-c795b04d5bf9?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/16021457-6e92-404b-8761-c795b04d5bf9? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b57a2709b983623c0b6762072e2dbcba"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5d164bbe6404c56d692f9fb5f7342f9d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.668456,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"5d164bbe6404c56d692f9fb5f7342f9d"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:04.456217592Z"}]},"request_id":"2d905479-a6d2-42c2-bdbf-51794d2b9921","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.0726845} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5d164bbe6404c56d692f9fb5f7342f9d"},"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/4d8624c0-ccad-41fb-8e46-5128846eae0b? 200 11ms","method":"GET","requestID":"5d164bbe6404c56d692f9fb5f7342f9d","responseTime":11,"status":200,"url":"/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4d8624c0-ccad-41fb-8e46-5128846eae0b? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5d164bbe6404c56d692f9fb5f7342f9d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6878681500de39a9960abdd1f69f0d80","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:48592","level":"info","msg":"Received request.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.666721,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6878681500de39a9960abdd1f69f0d80"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"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:48592","level":"info","msg":"Received request.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.606067,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"c6766590-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.560996,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"c676b3b0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:04.410326666Z"}]},"request_id":"1fcf3a15-180b-4492-a431-c4774d95a31b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.1376019} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c6766590-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:04.456217592Z"}]},"request_id":"3e206bc5-ea3f-4633-9b80-f751608e1ec0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.1383798} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c676b3b0-2a6b-11ef-8ad5-3d996a2c698c"},"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/16021457-6e92-404b-8761-c795b04d5bf9? 200 15ms","method":"GET","requestID":"c6766590-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/16021457-6e92-404b-8761-c795b04d5bf9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/4d8624c0-ccad-41fb-8e46-5128846eae0b? 200 14ms","method":"GET","requestID":"c676b3b0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"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/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.604617,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c67eca00-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.90484,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"c67f1820-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:04.410326666Z"}]},"request_id":"4a868876-2945-4c3a-bd0d-065f06145bd5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.1978526} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c67eca00-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:04.456217592Z"}]},"request_id":"31a5a2ef-089e-4a1b-8865-0a00403ab447","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.198849} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c67f1820-2a6b-11ef-8ad5-3d996a2c698c"},"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/16021457-6e92-404b-8761-c795b04d5bf9? 200 19ms","method":"GET","requestID":"c67eca00-2a6b-11ef-8ad5-3d996a2c698c","responseTime":19,"status":200,"url":"/devices/16021457-6e92-404b-8761-c795b04d5bf9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/4d8624c0-ccad-41fb-8e46-5128846eae0b? 200 18ms","method":"GET","requestID":"c67f1820-2a6b-11ef-8ad5-3d996a2c698c","responseTime":18,"status":200,"url":"/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b?"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fff7f66c0-21c8-4a40-8db4-2154ada02aaa#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fff7f66c0-21c8-4a40-8db4-2154ada02aaa","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"7a1e6d46-5e49-45c3-a143-cf69b9c79d6b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.206948} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"02c921d7-aa5e-4f7f-9a9e-1d1ec234e3cc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.2073438} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} 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":"6878681500de39a9960abdd1f69f0d80"},"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:48592","level":"info","msg":"Received request.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":2.443389,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"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":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c6827380-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"815","request_time":"0.138","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6878681500de39a9960abdd1f69f0d80"} experiment-1 | {"level":"info","message":"POST /experiments? 201 133ms","method":"POST","requestID":"6878681500de39a9960abdd1f69f0d80","responseTime":133,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/16021457-6e92-404b-8761-c795b04d5bf9/signaling 200 10ms","method":"POST","requestID":"c6827380-2a6b-11ef-8ad5-3d996a2c698c","responseTime":10,"status":200,"url":"/devices/16021457-6e92-404b-8761-c795b04d5bf9/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3e805adebcf8840dc1b01d13ffc5a9db","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.634371,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c6846f50-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.258696,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e805adebcf8840dc1b01d13ffc5a9db"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16021457-6e92-404b-8761-c795b04d5bf9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:04.410326666Z"}]},"request_id":"b01b2d38-f5e4-44da-a847-7dcc79511023","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.2355647} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e805adebcf8840dc1b01d13ffc5a9db"},"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/4d8624c0-ccad-41fb-8e46-5128846eae0b/signaling 200 19ms","method":"POST","requestID":"c6846f50-2a6b-11ef-8ad5-3d996a2c698c","responseTime":19,"status":200,"url":"/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"0781ee3c-c92b-471c-a2d1-625ce25b16ee"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"e0f340c2-3a27-4c2e-be24-855f1956325c"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"a306c42b-9bb5-4142-8f20-e82b12d37517"}]},"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/4d8624c0-ccad-41fb-8e46-5128846eae0b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/16021457-6e92-404b-8761-c795b04d5bf9? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3e805adebcf8840dc1b01d13ffc5a9db"} device-1 | {"level":"info","message":"GET /devices/16021457-6e92-404b-8761-c795b04d5bf9? 200 21ms","method":"GET","requestID":"3e805adebcf8840dc1b01d13ffc5a9db","responseTime":21,"status":200,"url":"/devices/16021457-6e92-404b-8761-c795b04d5bf9?"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cce4f2eb4cf9a0c18387f36939e265a3","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.064849,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"c68818d0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.968379,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cce4f2eb4cf9a0c18387f36939e265a3"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d8624c0-ccad-41fb-8e46-5128846eae0b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:04.456217592Z"}]},"request_id":"6ee30d05-a311-44cf-be11-1d8ce4026bf2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.262618} 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":"cce4f2eb4cf9a0c18387f36939e265a3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4d8624c0-ccad-41fb-8e46-5128846eae0b? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cce4f2eb4cf9a0c18387f36939e265a3"} device-1 | {"level":"info","message":"GET /devices/4d8624c0-ccad-41fb-8e46-5128846eae0b? 200 20ms","method":"GET","requestID":"cce4f2eb4cf9a0c18387f36939e265a3","responseTime":20,"status":200,"url":"/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b?"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"c13b4a94-1ae1-4ecb-ab19-0f0652c0d61d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.2716055} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8ff0dc63-b98f-409f-8017-20cfbf7582c3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.2722054} 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":"c68818d0-2a6b-11ef-8ad5-3d996a2c698c"},"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/1f0bca87-9ed7-4022-abd3-dea7133a3ced'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/1f0bca87-9ed7-4022-abd3-dea7133a3ced'"} 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":"c68818d0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":38,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"1f0bca87-9ed7-4022-abd3-dea7133a3ced","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"1f0bca87-9ed7-4022-abd3-dea7133a3ced","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/1f0bca87-9ed7-4022-abd3-dea7133a3ced' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1f0bca87-9ed7-4022-abd3-dea7133a3ced","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c5d6865c67b7afb94e8ef056d22db92b","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/4d8624c0-ccad-41fb-8e46-5128846eae0b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/1f0bca87-9ed7-4022-abd3-dea7133a3ced"}}},"level":"info","message":"received a callback"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"data":{"peerconnection":"1f0bca87-9ed7-4022-abd3-dea7133a3ced","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"c5d6865c67b7afb94e8ef056d22db92b","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"c5d6865c67b7afb94e8ef056d22db92b"} device-1 | {"data":{"peerconnection":"1f0bca87-9ed7-4022-abd3-dea7133a3ced","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/1f0bca87-9ed7-4022-abd3-dea7133a3ced' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1f0bca87-9ed7-4022-abd3-dea7133a3ced","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6ceb14e8808a9dbb34f884d3b2e9e612","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/4d8624c0-ccad-41fb-8e46-5128846eae0b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/1f0bca87-9ed7-4022-abd3-dea7133a3ced"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1f0bca87-9ed7-4022-abd3-dea7133a3ced","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"65f01700-5e07-420a-b436-743210804f31","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.3638163} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.375028,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1f0bca87-9ed7-4022-abd3-dea7133a3ced","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/1f0bca87-9ed7-4022-abd3-dea7133a3ced","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":"c6997df0-2a6b-11ef-8ad5-3d996a2c698c"},"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/1f0bca87-9ed7-4022-abd3-dea7133a3ced 200 8ms","method":"GET","requestID":"c6997df0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/peerconnections/1f0bca87-9ed7-4022-abd3-dea7133a3ced"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"6ceb14e8808a9dbb34f884d3b2e9e612","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.030","http_referrer":"","http_user_agent":"node-fetch","requestID":"6ceb14e8808a9dbb34f884d3b2e9e612"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"73f37bf1059de49211200e3797168bd4","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.737436,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"73f37bf1059de49211200e3797168bd4"},"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/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa HTTP/1.1","status": "200","body_bytes_sent":"888","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"73f37bf1059de49211200e3797168bd4"} experiment-1 | {"level":"info","message":"GET /experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa 200 13ms","method":"GET","requestID":"73f37bf1059de49211200e3797168bd4","responseTime":13,"status":200,"url":"/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"be94ab1ceda0f8395306f884fa717473","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.687458,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"be94ab1ceda0f8395306f884fa717473"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.668481,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/1f0bca87-9ed7-4022-abd3-dea7133a3ced","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/1f0bca87-9ed7-4022-abd3-dea7133a3ced","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"c6aabc00-2a6b-11ef-8ad5-3d996a2c698c"},"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/1f0bca87-9ed7-4022-abd3-dea7133a3ced' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/1f0bca87-9ed7-4022-abd3-dea7133a3ced' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"1f0bca87-9ed7-4022-abd3-dea7133a3ced","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"f204db54debe3e302ca9a500f1ff3911","responseTime":0,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1f0bca87-9ed7-4022-abd3-dea7133a3ced': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F1f0bca87-9ed7-4022-abd3-dea7133a3ced","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"116a6f26-3a20-4871-8262-4f3a48aca1f8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.4882667} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"32b0f1dd-5662-4888-bfe0-64b6fc3a2efb","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.4886444} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"97b0841c883b8baf097a0d82f4801f13","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/4d8624c0-ccad-41fb-8e46-5128846eae0b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/1f0bca87-9ed7-4022-abd3-dea7133a3ced"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c6aabc00-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/16021457-6e92-404b-8761-c795b04d5bf9"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/1f0bca87-9ed7-4022-abd3-dea7133a3ced"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"1f0bca87-9ed7-4022-abd3-dea7133a3ced","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/1f0bca87-9ed7-4022-abd3-dea7133a3ced 204 33ms","method":"DELETE","requestID":"c6aabc00-2a6b-11ef-8ad5-3d996a2c698c","responseTime":33,"status":204,"url":"/peerconnections/1f0bca87-9ed7-4022-abd3-dea7133a3ced"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fff7f66c0-21c8-4a40-8db4-2154ada02aaa': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fff7f66c0-21c8-4a40-8db4-2154ada02aaa","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"59135af6-52f2-40bd-a7de-437f8805a9bd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.5309665} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8d590ebe-40a1-467d-9908-95c018c673a0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.531359} 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":"be94ab1ceda0f8395306f884fa717473"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.129","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"be94ab1ceda0f8395306f884fa717473"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1521","request_time":"0.559","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"dd9f41dbfe1e5b861d38505b2d5a7ca1"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1521","request_time":"0.574","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b0145e64fdc752e6f691b1532e396d9f"} experiment-1 | {"level":"info","message":"DELETE /experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa 204 127ms","method":"DELETE","requestID":"be94ab1ceda0f8395306f884fa717473","responseTime":127,"status":204,"url":"/experiments/ff7f66c0-21c8-4a40-8db4-2154ada02aaa"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 103ms","method":"POST","requestID":"f204db54debe3e302ca9a500f1ff3911","responseTime":103,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.107","http_referrer":"","http_user_agent":"node-fetch","requestID":"f204db54debe3e302ca9a500f1ff3911"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"84af3a4cf10f7beb9ff79a84688829f0","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 104ms","method":"POST","requestID":"97b0841c883b8baf097a0d82f4801f13","responseTime":104,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.108","http_referrer":"","http_user_agent":"node-fetch","requestID":"97b0841c883b8baf097a0d82f4801f13"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4d8624c0-ccad-41fb-8e46-5128846eae0b' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.795644,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"84af3a4cf10f7beb9ff79a84688829f0"},"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/16021457-6e92-404b-8761-c795b04d5bf9' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb42ad061-b8cc-4b1d-946f-0e48e12116bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a989e38d-5ea8-4394-b711-8b006fafe1f8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.6182792} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"84af3a4cf10f7beb9ff79a84688829f0"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"98b14b61-0d6f-4e92-978e-2bb5e3ccae99","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.6246524} 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":"84af3a4cf10f7beb9ff79a84688829f0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb42ad061-b8cc-4b1d-946f-0e48e12116bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"b97b45bb-5b72-49f1-8b53-6a75738395aa","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.636197} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"63d1a491-a69c-412a-be4b-b9250f4c4821","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.6363873} 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":"84af3a4cf10f7beb9ff79a84688829f0"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb42ad061-b8cc-4b1d-946f-0e48e12116bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb42ad061-b8cc-4b1d-946f-0e48e12116bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:05.636179347Z"}]},"request_id":"edeff0ed-6d8b-4aaa-861d-8422f423f32f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.641735} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"84af3a4cf10f7beb9ff79a84688829f0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"84af3a4cf10f7beb9ff79a84688829f0"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"84af3a4cf10f7beb9ff79a84688829f0","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1e3dc9de40459e447507b670bc5e93c7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.729418,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"1e3dc9de40459e447507b670bc5e93c7"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b36ec7c-0b12-49f4-b9b1-ea77c4495f7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3d8e0a75-5da7-44e9-a433-8fb7908cf708","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.6729772} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1e3dc9de40459e447507b670bc5e93c7"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"25fed686-8b07-4049-a71d-ee8169c41f0b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.6785612} 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":"1e3dc9de40459e447507b670bc5e93c7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b36ec7c-0b12-49f4-b9b1-ea77c4495f7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"7c8f2dc5-3bbd-43c9-8590-5e8c76fb62eb","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.6907487} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"49db1554-4b01-4b50-b54d-773a3cb788a0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.691015} 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":"1e3dc9de40459e447507b670bc5e93c7"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b36ec7c-0b12-49f4-b9b1-ea77c4495f7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b36ec7c-0b12-49f4-b9b1-ea77c4495f7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:05.690732775Z"}]},"request_id":"cccd27af-f61b-49c4-a8ed-3c5a3b7ee622","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.6960337} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1e3dc9de40459e447507b670bc5e93c7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1e3dc9de40459e447507b670bc5e93c7"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"1e3dc9de40459e447507b670bc5e93c7","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"29adef33adb2db6e35113690b36578f3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.952332,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"29adef33adb2db6e35113690b36578f3"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb30be82d-0e3e-4c28-b3fd-8789c7d1fb42","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3fcf5c65-c14f-4179-9abf-ba2cb7ec0e8a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.722954} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"29adef33adb2db6e35113690b36578f3"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0695e2e8-e364-49b9-ab0a-b40cb110fecd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.7275872} 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":"29adef33adb2db6e35113690b36578f3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb30be82d-0e3e-4c28-b3fd-8789c7d1fb42","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"72e4683f-d845-4978-8258-5db58d16b4db","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.7352421} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d7cbd774-deed-4bdc-9403-350182e1e159","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.735436} 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":"29adef33adb2db6e35113690b36578f3"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb30be82d-0e3e-4c28-b3fd-8789c7d1fb42","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb30be82d-0e3e-4c28-b3fd-8789c7d1fb42","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:05.735230469Z"}]},"request_id":"92fd9539-012f-4e17-aaa6-fdb32d59d181","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.7394588} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"29adef33adb2db6e35113690b36578f3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"29adef33adb2db6e35113690b36578f3"} device-1 | {"level":"info","message":"POST /devices? 201 36ms","method":"POST","requestID":"29adef33adb2db6e35113690b36578f3","responseTime":36,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"92038f4cceca51aa32eabb5ebf064706","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.659169,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"92038f4cceca51aa32eabb5ebf064706"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc6977ef3-8159-494c-9e1e-6369eca159be","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a3020956-9d5c-4e6b-a152-27d79b2c6571","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.7614799} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"92038f4cceca51aa32eabb5ebf064706"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a3577965-c2a7-4685-8fb1-59524b06ae42","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.7657938} 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":"92038f4cceca51aa32eabb5ebf064706"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc6977ef3-8159-494c-9e1e-6369eca159be","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"f5e26f4b-711c-46c8-8c87-80a8a34be576","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.7825415} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"69682551-cb27-4d53-8b34-470daef5b0cc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.782633} 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":"92038f4cceca51aa32eabb5ebf064706"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc6977ef3-8159-494c-9e1e-6369eca159be","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc6977ef3-8159-494c-9e1e-6369eca159be","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:05.782524648Z"}]},"request_id":"ffd74f93-f614-414c-854d-cfc4d991c939","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.7866206} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"92038f4cceca51aa32eabb5ebf064706"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"92038f4cceca51aa32eabb5ebf064706"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"92038f4cceca51aa32eabb5ebf064706","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"41e9a11f78cf569e265aa0c04b94b214","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.72732,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"41e9a11f78cf569e265aa0c04b94b214"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd557917f-a45a-45d1-85e7-e4c2d65aac04","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"64c2a18c-a9db-4bcc-a0a2-436a0ccb1f71","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.8126972} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41e9a11f78cf569e265aa0c04b94b214"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"837941de-0d80-484f-a634-17ccd06d3435","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.8188689} 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":"41e9a11f78cf569e265aa0c04b94b214"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd557917f-a45a-45d1-85e7-e4c2d65aac04","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"9c92df20-f1f0-44bf-8dbb-7b9879e4f092","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.8293166} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8f1c9d4d-5fe1-409f-a732-94fdb50a8192","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.8296955} 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":"41e9a11f78cf569e265aa0c04b94b214"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd557917f-a45a-45d1-85e7-e4c2d65aac04","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd557917f-a45a-45d1-85e7-e4c2d65aac04","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:05.829303992Z"}]},"request_id":"20a3284a-5921-46a0-b572-6de48b5f8edd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.8334675} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41e9a11f78cf569e265aa0c04b94b214"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"41e9a11f78cf569e265aa0c04b94b214"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"41e9a11f78cf569e265aa0c04b94b214","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bf85f7a572b06f7a63dc44fedcf77871","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.691639,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"bf85f7a572b06f7a63dc44fedcf77871"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1901d88-de64-479a-bdb6-afbf4a1c19f0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6a7b1293-a647-479c-a626-1e77d704c6a9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.8624623} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bf85f7a572b06f7a63dc44fedcf77871"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fc8792f8-da18-41a7-b2de-15f7bd9497e8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.8667555} 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":"bf85f7a572b06f7a63dc44fedcf77871"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1901d88-de64-479a-bdb6-afbf4a1c19f0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"041a584e-bc02-4426-9ba0-ec009c147ea5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.876692} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"750ca129-355f-450c-a1e9-fa33b6924519","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.8769329} 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":"bf85f7a572b06f7a63dc44fedcf77871"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1901d88-de64-479a-bdb6-afbf4a1c19f0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1901d88-de64-479a-bdb6-afbf4a1c19f0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:05.876679930Z"}]},"request_id":"99724b21-b70a-49f1-91b1-53f166c5032d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.8805618} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bf85f7a572b06f7a63dc44fedcf77871"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bf85f7a572b06f7a63dc44fedcf77871"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"bf85f7a572b06f7a63dc44fedcf77871","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4f3b19ac9cf0dd094bd0705a3fe432c9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":2.083256,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"4f3b19ac9cf0dd094bd0705a3fe432c9"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fade3bc25-d576-46cb-85c7-ce505bc4693a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b08fab34-6b31-48ff-9504-78a6000cbedb","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.909539} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4f3b19ac9cf0dd094bd0705a3fe432c9"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8680640a-0e86-4411-b878-dd13a001fb0e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.9146063} 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":"4f3b19ac9cf0dd094bd0705a3fe432c9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fade3bc25-d576-46cb-85c7-ce505bc4693a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"a6cc177e-3ee8-447c-beb4-5a7c2d61870e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.922785} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e7157071-db4b-4074-b5f7-897e9ecb1c05","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.922963} 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":"4f3b19ac9cf0dd094bd0705a3fe432c9"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fade3bc25-d576-46cb-85c7-ce505bc4693a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fade3bc25-d576-46cb-85c7-ce505bc4693a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:05.922769552Z"}]},"request_id":"f8eb9872-ce68-41b3-96bb-466bf6d24c41","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.9277403} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4f3b19ac9cf0dd094bd0705a3fe432c9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4f3b19ac9cf0dd094bd0705a3fe432c9"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"4f3b19ac9cf0dd094bd0705a3fe432c9","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5d1d592156077f6731740f29650cd407","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.677773,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"5d1d592156077f6731740f29650cd407"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F037d8072-666a-41af-9436-af8aaaeebcf7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d5604f72-5454-4cc4-bae7-5cc7090cfc15","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.95533} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5d1d592156077f6731740f29650cd407"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3c592e29-c75c-4eda-958c-b69ad7dd2f81","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.9596155} 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":"5d1d592156077f6731740f29650cd407"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F037d8072-666a-41af-9436-af8aaaeebcf7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"fc77aa78-8da2-4c99-8aae-7f6d6b5d6613","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.9700418} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"67652ab0-dc48-4a24-9638-da6d02ae93e9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.9701436} 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":"5d1d592156077f6731740f29650cd407"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F037d8072-666a-41af-9436-af8aaaeebcf7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F037d8072-666a-41af-9436-af8aaaeebcf7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:05.970023946Z"}]},"request_id":"d0920be0-000a-4ddf-9edf-ba0fb5e099dc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382785.973837} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5d1d592156077f6731740f29650cd407"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5d1d592156077f6731740f29650cd407"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"5d1d592156077f6731740f29650cd407","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"86437be880431922f44fbc969f64a1be","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.861865,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382785,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4NX0.GrZS_eAs07O5TRglejJ_oGoHAQKtLYaZdtiflM3zG60"} 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":"86437be880431922f44fbc969f64a1be"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25bbc324-6860-487a-9fe6-5934302f49d5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5040fc81-6087-4710-b98e-a79ba19a75d6","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.0014234} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"86437be880431922f44fbc969f64a1be"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ca60defa-af8f-480f-9cd8-961ed7a8cf94","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.0067246} 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":"86437be880431922f44fbc969f64a1be"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25bbc324-6860-487a-9fe6-5934302f49d5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"a4039256-3552-4dd0-b35b-a56d56f3927e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.0164526} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"28f401d2-ed52-4021-ae7d-c2f6215323dd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.0165381} 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":"86437be880431922f44fbc969f64a1be"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25bbc324-6860-487a-9fe6-5934302f49d5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F25bbc324-6860-487a-9fe6-5934302f49d5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.016433110Z"}]},"request_id":"f7fd0520-f464-4261-b898-f47f70a58037","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.0206475} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"86437be880431922f44fbc969f64a1be"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"86437be880431922f44fbc969f64a1be"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"86437be880431922f44fbc969f64a1be","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"838fe88e46c77095b517f121bc09e62a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.64276,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"838fe88e46c77095b517f121bc09e62a"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F182db717-cc1a-4b1c-a194-53045202205d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c10807c3-21e1-4a5a-b2e8-4ddea5ad4ea3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.049773} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"838fe88e46c77095b517f121bc09e62a"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"27d80d2a-ce9f-44db-bad2-c0c1f14aada3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.054595} 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":"838fe88e46c77095b517f121bc09e62a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F182db717-cc1a-4b1c-a194-53045202205d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"79d32b1c-6c2e-4fb5-8503-fdbfe9ae12ff","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.0650566} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b41a91f1-2eec-4c7d-bde8-f3830ce5ee96","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.0651357} 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":"838fe88e46c77095b517f121bc09e62a"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F182db717-cc1a-4b1c-a194-53045202205d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F182db717-cc1a-4b1c-a194-53045202205d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.065036688Z"}]},"request_id":"9868e1d8-238c-4d4a-91ea-d81d99f698d3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.069568} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"838fe88e46c77095b517f121bc09e62a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"278","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"838fe88e46c77095b517f121bc09e62a"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"838fe88e46c77095b517f121bc09e62a","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5bdef748c907961ca83d4d210b3999d8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.715549,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"5bdef748c907961ca83d4d210b3999d8"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99cc0742-660e-455d-bc87-89718ee4c541","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"cc2c408d-8e31-46df-abef-d69f646af374","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.0948403} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5bdef748c907961ca83d4d210b3999d8"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e444f062-feab-465c-bd73-c5e3a94535c3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.1013224} 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":"5bdef748c907961ca83d4d210b3999d8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99cc0742-660e-455d-bc87-89718ee4c541","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"cb7938bc-e7ab-46e9-854a-c317a1593aa7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.109613} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"de833dcb-650d-49b2-b109-831d87699f07","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.1099532} 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":"5bdef748c907961ca83d4d210b3999d8"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99cc0742-660e-455d-bc87-89718ee4c541","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99cc0742-660e-455d-bc87-89718ee4c541","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.109594390Z"}]},"request_id":"c32a29e1-00f5-4bd5-a60a-4193523fb34a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.1143188} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5bdef748c907961ca83d4d210b3999d8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1069","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5bdef748c907961ca83d4d210b3999d8"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"5bdef748c907961ca83d4d210b3999d8","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fa0802d3bcb83aaf7ffd2d12f346a185","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.712009,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"fa0802d3bcb83aaf7ffd2d12f346a185"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85ae1b53-6c0c-478d-954d-4801c4ca996c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a457feb9-5e99-4143-b808-ae4ae347b348","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.1457117} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa0802d3bcb83aaf7ffd2d12f346a185"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"75857244-7e81-4ef0-9c6b-f5b3726335ee","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.1507764} 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":"fa0802d3bcb83aaf7ffd2d12f346a185"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85ae1b53-6c0c-478d-954d-4801c4ca996c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"d045fad6-a101-4f9d-b78a-5ffcd03d57a0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.1602423} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e4e2a528-31b9-4864-8c11-5d2325d6f35d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.1604407} 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":"fa0802d3bcb83aaf7ffd2d12f346a185"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85ae1b53-6c0c-478d-954d-4801c4ca996c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85ae1b53-6c0c-478d-954d-4801c4ca996c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.160228554Z"}]},"request_id":"df16a407-a90b-4916-987d-e7ca7e67963d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.164607} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa0802d3bcb83aaf7ffd2d12f346a185"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1347","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fa0802d3bcb83aaf7ffd2d12f346a185"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"fa0802d3bcb83aaf7ffd2d12f346a185","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c527e88e8a0ec7be6f3d3b61145d7394","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.266804,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"c527e88e8a0ec7be6f3d3b61145d7394"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F504d71a7-dcfc-43ad-9a8c-3e73055efc09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"419b6412-c399-490d-9bcd-69a5050d113f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.192173} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c527e88e8a0ec7be6f3d3b61145d7394"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6d4b52ac-51bb-4cb4-bcb0-52889687c595","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.1977496} 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":"c527e88e8a0ec7be6f3d3b61145d7394"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F504d71a7-dcfc-43ad-9a8c-3e73055efc09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"28021089-8ad9-49d7-8b51-6b223c43d8dc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.2077262} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"15603036-a9e3-4fee-8b70-ad3cfdf41469","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.2079248} 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":"c527e88e8a0ec7be6f3d3b61145d7394"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F504d71a7-dcfc-43ad-9a8c-3e73055efc09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F504d71a7-dcfc-43ad-9a8c-3e73055efc09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.207711137Z"}]},"request_id":"b0555aa2-2fa5-473f-9e1a-d5fc791032ee","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.212475} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c527e88e8a0ec7be6f3d3b61145d7394"},"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 43ms","method":"POST","requestID":"c527e88e8a0ec7be6f3d3b61145d7394","responseTime":43,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1070","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c527e88e8a0ec7be6f3d3b61145d7394"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"84d141b4bcfc655f39859d307c0418f2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.827171,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/99cc0742-660e-455d-bc87-89718ee4c541","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/99cc0742-660e-455d-bc87-89718ee4c541","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"84d141b4bcfc655f39859d307c0418f2"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99cc0742-660e-455d-bc87-89718ee4c541","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99cc0742-660e-455d-bc87-89718ee4c541","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.109594390Z"}]},"request_id":"10fb098e-92d5-49e2-96ad-a69ac6ee3dc4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.2340128} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"84d141b4bcfc655f39859d307c0418f2"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5d96346d-02dc-42b6-9976-e3ea91dbde5c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.2392755} 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":"84d141b4bcfc655f39859d307c0418f2"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99cc0742-660e-455d-bc87-89718ee4c541","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99cc0742-660e-455d-bc87-89718ee4c541","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.109594390Z"}]},"request_id":"4620e840-a100-45e1-a6e3-75fb19350622","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.2544513} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"84d141b4bcfc655f39859d307c0418f2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/99cc0742-660e-455d-bc87-89718ee4c541? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"84d141b4bcfc655f39859d307c0418f2"} device-1 | {"level":"info","message":"PATCH /devices/99cc0742-660e-455d-bc87-89718ee4c541? 200 34ms","method":"PATCH","requestID":"84d141b4bcfc655f39859d307c0418f2","responseTime":34,"status":200,"url":"/devices/99cc0742-660e-455d-bc87-89718ee4c541?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4c821bbae399cd78cf5a5f4dd49902e1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.708637,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/85ae1b53-6c0c-478d-954d-4801c4ca996c","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/85ae1b53-6c0c-478d-954d-4801c4ca996c","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"4c821bbae399cd78cf5a5f4dd49902e1"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85ae1b53-6c0c-478d-954d-4801c4ca996c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85ae1b53-6c0c-478d-954d-4801c4ca996c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.160228554Z"}]},"request_id":"9f39f032-e68d-47e7-b9c5-e537cb81829b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.2737765} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4c821bbae399cd78cf5a5f4dd49902e1"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8c75e7dc-f555-47b9-bf01-50deb393b5ab","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.27882} 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":"4c821bbae399cd78cf5a5f4dd49902e1"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85ae1b53-6c0c-478d-954d-4801c4ca996c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85ae1b53-6c0c-478d-954d-4801c4ca996c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.160228554Z"}]},"request_id":"20dc1c4c-ce61-416e-9097-58d8cd91629e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.2876685} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4c821bbae399cd78cf5a5f4dd49902e1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/85ae1b53-6c0c-478d-954d-4801c4ca996c? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4c821bbae399cd78cf5a5f4dd49902e1"} device-1 | {"level":"info","message":"PATCH /devices/85ae1b53-6c0c-478d-954d-4801c4ca996c? 200 28ms","method":"PATCH","requestID":"4c821bbae399cd78cf5a5f4dd49902e1","responseTime":28,"status":200,"url":"/devices/85ae1b53-6c0c-478d-954d-4801c4ca996c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b216933c37370e911640a903b521aae5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.965375,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/504d71a7-dcfc-43ad-9a8c-3e73055efc09","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/504d71a7-dcfc-43ad-9a8c-3e73055efc09","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"b216933c37370e911640a903b521aae5"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F504d71a7-dcfc-43ad-9a8c-3e73055efc09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F504d71a7-dcfc-43ad-9a8c-3e73055efc09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.207711137Z"}]},"request_id":"137a0483-c176-4d52-995a-387212b71c56","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.304881} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b216933c37370e911640a903b521aae5"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"340f4676-9558-479c-b7e0-875c4e892a26","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.3100278} 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":"b216933c37370e911640a903b521aae5"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F504d71a7-dcfc-43ad-9a8c-3e73055efc09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F504d71a7-dcfc-43ad-9a8c-3e73055efc09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.207711137Z"}]},"request_id":"b8a1e130-b9ec-4faf-82bd-78bde1b7e710","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.3230782} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b216933c37370e911640a903b521aae5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/504d71a7-dcfc-43ad-9a8c-3e73055efc09? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b216933c37370e911640a903b521aae5"} device-1 | {"level":"info","message":"PATCH /devices/504d71a7-dcfc-43ad-9a8c-3e73055efc09? 200 30ms","method":"PATCH","requestID":"b216933c37370e911640a903b521aae5","responseTime":30,"status":200,"url":"/devices/504d71a7-dcfc-43ad-9a8c-3e73055efc09?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f25984330939f5964522b76751efe0f1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.785741,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/99cc0742-660e-455d-bc87-89718ee4c541","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/99cc0742-660e-455d-bc87-89718ee4c541","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"f25984330939f5964522b76751efe0f1"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99cc0742-660e-455d-bc87-89718ee4c541","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F99cc0742-660e-455d-bc87-89718ee4c541","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.109594390Z"}]},"request_id":"83011eee-35cc-4462-a988-5685d83549e2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.3401725} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f25984330939f5964522b76751efe0f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.92151,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.939335,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b42ad061-b8cc-4b1d-946f-0e48e12116bd","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/b42ad061-b8cc-4b1d-946f-0e48e12116bd","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f25984330939f5964522b76751efe0f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b36ec7c-0b12-49f4-b9b1-ea77c4495f7b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1b36ec7c-0b12-49f4-b9b1-ea77c4495f7b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f25984330939f5964522b76751efe0f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:37670","level":"info","msg":"Received request.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37680","level":"info","msg":"Received request.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37670","level":"info","msg":"Sent response.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.981909,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37680","level":"info","msg":"Sent response.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.664009,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b30be82d-0e3e-4c28-b3fd-8789c7d1fb42","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/b30be82d-0e3e-4c28-b3fd-8789c7d1fb42","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"f25984330939f5964522b76751efe0f1"},"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/85ae1b53-6c0c-478d-954d-4801c4ca996c","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/85ae1b53-6c0c-478d-954d-4801c4ca996c","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f25984330939f5964522b76751efe0f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/99cc0742-660e-455d-bc87-89718ee4c541? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f25984330939f5964522b76751efe0f1"} device-1 | {"level":"info","message":"GET /devices/99cc0742-660e-455d-bc87-89718ee4c541? 200 30ms","method":"GET","requestID":"f25984330939f5964522b76751efe0f1","responseTime":30,"status":200,"url":"/devices/99cc0742-660e-455d-bc87-89718ee4c541?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e30399182edff308ed3ad91e462d49bc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.685367,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/85ae1b53-6c0c-478d-954d-4801c4ca996c","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/85ae1b53-6c0c-478d-954d-4801c4ca996c","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"e30399182edff308ed3ad91e462d49bc"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85ae1b53-6c0c-478d-954d-4801c4ca996c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85ae1b53-6c0c-478d-954d-4801c4ca996c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.160228554Z"}]},"request_id":"47565fc8-1ead-426c-9c63-a011891bb635","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.3738995} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e30399182edff308ed3ad91e462d49bc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.782798,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37670","level":"info","msg":"Received request.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.909326,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37670","level":"info","msg":"Sent response.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.520792,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37680","level":"info","msg":"Received request.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c6977ef3-8159-494c-9e1e-6369eca159be","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/c6977ef3-8159-494c-9e1e-6369eca159be","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"e30399182edff308ed3ad91e462d49bc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d557917f-a45a-45d1-85e7-e4c2d65aac04","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d557917f-a45a-45d1-85e7-e4c2d65aac04","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"e30399182edff308ed3ad91e462d49bc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1901d88-de64-479a-bdb6-afbf4a1c19f0","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/f1901d88-de64-479a-bdb6-afbf4a1c19f0","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e30399182edff308ed3ad91e462d49bc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:37680","level":"info","msg":"Sent response.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.510979,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ade3bc25-d576-46cb-85c7-ce505bc4693a","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/ade3bc25-d576-46cb-85c7-ce505bc4693a","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"e30399182edff308ed3ad91e462d49bc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37690","level":"info","msg":"Received request.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.968199,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37690","level":"info","msg":"Sent response.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.66981,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/504d71a7-dcfc-43ad-9a8c-3e73055efc09","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/504d71a7-dcfc-43ad-9a8c-3e73055efc09","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"e30399182edff308ed3ad91e462d49bc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/99cc0742-660e-455d-bc87-89718ee4c541","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/99cc0742-660e-455d-bc87-89718ee4c541","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"e30399182edff308ed3ad91e462d49bc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/85ae1b53-6c0c-478d-954d-4801c4ca996c? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e30399182edff308ed3ad91e462d49bc"} device-1 | {"level":"info","message":"GET /devices/85ae1b53-6c0c-478d-954d-4801c4ca996c? 200 30ms","method":"GET","requestID":"e30399182edff308ed3ad91e462d49bc","responseTime":30,"status":200,"url":"/devices/85ae1b53-6c0c-478d-954d-4801c4ca996c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"de1318f86ea2af2508da8e9b572b1632","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.793712,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/504d71a7-dcfc-43ad-9a8c-3e73055efc09","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/504d71a7-dcfc-43ad-9a8c-3e73055efc09","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"de1318f86ea2af2508da8e9b572b1632"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F504d71a7-dcfc-43ad-9a8c-3e73055efc09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F504d71a7-dcfc-43ad-9a8c-3e73055efc09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.207711137Z"}]},"request_id":"160f1659-8f55-468d-84f6-a5cfb07b31d0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.407933} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de1318f86ea2af2508da8e9b572b1632"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.654271,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.737214,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37670","level":"info","msg":"Received request.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37670","level":"info","msg":"Sent response.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.511795,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37680","level":"info","msg":"Received request.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/037d8072-666a-41af-9436-af8aaaeebcf7","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/037d8072-666a-41af-9436-af8aaaeebcf7","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"de1318f86ea2af2508da8e9b572b1632"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/25bbc324-6860-487a-9fe6-5934302f49d5","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/25bbc324-6860-487a-9fe6-5934302f49d5","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de1318f86ea2af2508da8e9b572b1632"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/182db717-cc1a-4b1c-a194-53045202205d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/182db717-cc1a-4b1c-a194-53045202205d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"de1318f86ea2af2508da8e9b572b1632"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:37680","level":"info","msg":"Sent response.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.714707,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/99cc0742-660e-455d-bc87-89718ee4c541","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/99cc0742-660e-455d-bc87-89718ee4c541","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"de1318f86ea2af2508da8e9b572b1632"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/504d71a7-dcfc-43ad-9a8c-3e73055efc09? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"de1318f86ea2af2508da8e9b572b1632"} device-1 | {"level":"info","message":"GET /devices/504d71a7-dcfc-43ad-9a8c-3e73055efc09? 200 22ms","method":"GET","requestID":"de1318f86ea2af2508da8e9b572b1632","responseTime":22,"status":200,"url":"/devices/504d71a7-dcfc-43ad-9a8c-3e73055efc09?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d115e1fc4f6ff5e8f3088e32f4a001a4","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.462035,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"d115e1fc4f6ff5e8f3088e32f4a001a4"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8acf4538-1cc8-4798-8e2b-92ee884b1668","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"786d3f02-924d-4f9a-86d2-f7a1cc2bafbe","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.444258} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d115e1fc4f6ff5e8f3088e32f4a001a4"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1d3ddcaa-2e97-4470-b422-63fbe31716b0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.4491088} 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":"d115e1fc4f6ff5e8f3088e32f4a001a4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8acf4538-1cc8-4798-8e2b-92ee884b1668","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"c90e4afe-816b-45a5-9d10-93d6bf8078ab","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.4595308} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"030b2aaa-3e51-494e-8533-d1710e0ad19b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.4598463} 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":"d115e1fc4f6ff5e8f3088e32f4a001a4"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8acf4538-1cc8-4798-8e2b-92ee884b1668","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8acf4538-1cc8-4798-8e2b-92ee884b1668","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.459514800Z"}]},"request_id":"0969bf60-776e-4b95-91a0-1cc72bb99eb0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.4636292} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d115e1fc4f6ff5e8f3088e32f4a001a4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"284","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d115e1fc4f6ff5e8f3088e32f4a001a4"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"d115e1fc4f6ff5e8f3088e32f4a001a4","responseTime":37,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"98683fb6da1516c6fbe23837a3cc1425","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.658992,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"98683fb6da1516c6fbe23837a3cc1425"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6de8bbde-ba6c-4996-a5bd-41aa856cc876","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2760989b-44ab-47af-8073-e0901b1d90d2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.4866712} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"98683fb6da1516c6fbe23837a3cc1425"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9a7a98dc-559c-4f2c-9576-4a5e426d9b71","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.4909658} 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":"98683fb6da1516c6fbe23837a3cc1425"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6de8bbde-ba6c-4996-a5bd-41aa856cc876","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"38f6ed10-24d9-4fad-82ae-ad0033f201d7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.505372} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"774f5334-b19b-4ef4-bc5e-d2de00ad4813","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.5055299} 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":"98683fb6da1516c6fbe23837a3cc1425"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6de8bbde-ba6c-4996-a5bd-41aa856cc876","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6de8bbde-ba6c-4996-a5bd-41aa856cc876","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.505358370Z"}]},"request_id":"72b3afc4-ed56-4c37-947f-a18a95b587aa","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.5092835} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"98683fb6da1516c6fbe23837a3cc1425"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"545","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"98683fb6da1516c6fbe23837a3cc1425"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"98683fb6da1516c6fbe23837a3cc1425","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0651c083148c71a7a275857df8b436f1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.69641,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382786,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4Nn0.qEi03MJjazF3kRYcJ3kH91A6jefh5IZmkqxhENIRF-A"} 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":"0651c083148c71a7a275857df8b436f1"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"27af4891-dc09-48be-bf65-0ad5f93e3c65","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.5322046} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0651c083148c71a7a275857df8b436f1"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"669af508-1943-4b3f-b5ed-d2b42348eea3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.536602} 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":"0651c083148c71a7a275857df8b436f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"d403e70c-081e-42d7-8dd3-98c64322fca9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.5457516} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"21e6c23e-257a-4fd7-9940-37af3388af05","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.546052} 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":"0651c083148c71a7a275857df8b436f1"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.545737258Z"}]},"request_id":"f2697fd0-cb8c-4e55-8773-e19f1e8097e5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382786.5498054} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0651c083148c71a7a275857df8b436f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0651c083148c71a7a275857df8b436f1"} device-1 | {"level":"info","message":"POST /devices? 201 35ms","method":"POST","requestID":"0651c083148c71a7a275857df8b436f1","responseTime":35,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"fefa07cb67ff821d619547c4f567ca86","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3/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":"fefa07cb67ff821d619547c4f567ca86"} device-1 | {"level":"info","message":"OPTIONS /devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3/websocket 200 1ms","method":"OPTIONS","requestID":"fefa07cb67ff821d619547c4f567ca86","responseTime":1,"status":200,"url":"/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"768bbd41068df23dbb4295e51b037386","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.856699,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382788,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d6305ca51609e27904f77a5b57acc3ca","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"768bbd41068df23dbb4295e51b037386"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} gateway-1 | {"time_local":"14/Jun/2024:16:33:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/8acf4538-1cc8-4798-8e2b-92ee884b1668/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":"d6305ca51609e27904f77a5b57acc3ca"} device-1 | {"level":"info","message":"OPTIONS /devices/8acf4538-1cc8-4798-8e2b-92ee884b1668/websocket 200 1ms","method":"OPTIONS","requestID":"d6305ca51609e27904f77a5b57acc3ca","responseTime":1,"status":200,"url":"/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"aa901a066666c4f4a9655d827a824868","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.732841,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382788,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo"} 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":"aa901a066666c4f4a9655d827a824868"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.024","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"768bbd41068df23dbb4295e51b037386"} device-1 | {"level":"info","message":"POST /devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3/websocket 200 20ms","method":"POST","requestID":"768bbd41068df23dbb4295e51b037386","responseTime":20,"status":200,"url":"/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/8acf4538-1cc8-4798-8e2b-92ee884b1668/websocket 200 18ms","method":"POST","requestID":"aa901a066666c4f4a9655d827a824868","responseTime":18,"status":200,"url":"/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:33:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8acf4538-1cc8-4798-8e2b-92ee884b1668/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.022","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"aa901a066666c4f4a9655d827a824868"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7ba92c1203b98668900e263eb0510cdd","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.781195,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382788,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo"} 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":"7ba92c1203b98668900e263eb0510cdd"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.545737258Z"}]},"request_id":"2537fc1d-26de-4b31-8efb-bbb584125c25","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382788.5911121} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7ba92c1203b98668900e263eb0510cdd"},"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/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3? 200 10ms","method":"GET","requestID":"7ba92c1203b98668900e263eb0510cdd","responseTime":10,"status":200,"url":"/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7ba92c1203b98668900e263eb0510cdd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo","level":"info","message":"auth send jwt"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5e4dcea99ed3a0c89b0ac0f4eacc0131","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.717939,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382788,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo"} 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":"5e4dcea99ed3a0c89b0ac0f4eacc0131"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"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:48592","level":"info","msg":"Received request.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.930058,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6de8bbde-ba6c-4996-a5bd-41aa856cc876","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/6de8bbde-ba6c-4996-a5bd-41aa856cc876","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382788,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c88d37a0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.700929,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382788,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c88d85c0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6de8bbde-ba6c-4996-a5bd-41aa856cc876","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6de8bbde-ba6c-4996-a5bd-41aa856cc876","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.505358370Z"}]},"request_id":"03ff9a9e-86ea-4e07-8c77-15dc69f09199","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382788.6441538} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c88d37a0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.545737258Z"}]},"request_id":"588e0eea-25b6-4e77-8bee-ef946b5956f6","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382788.6472764} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c88d85c0-2a6b-11ef-8ad5-3d996a2c698c"},"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:48592","level":"info","msg":"Received request.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:08Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.744772,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:08Z"} device-1 | {"level":"info","message":"GET /devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3? 200 14ms","method":"GET","requestID":"c88d85c0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3?"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382788,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo"} 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":"c88d37a0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/6de8bbde-ba6c-4996-a5bd-41aa856cc876? 200 19ms","method":"GET","requestID":"c88d37a0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":19,"status":200,"url":"/devices/6de8bbde-ba6c-4996-a5bd-41aa856cc876?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"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:48592","level":"info","msg":"Received request.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:08Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.945945,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382788,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c8985b30-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.861284,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382788,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c8988240-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8acf4538-1cc8-4798-8e2b-92ee884b1668","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8acf4538-1cc8-4798-8e2b-92ee884b1668","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.459514800Z"}]},"request_id":"ebe64aa5-0067-463c-8528-25da48fdc761","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382788.7172625} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c8985b30-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.545737258Z"}]},"request_id":"46d6e70c-37b3-4459-bfad-9498f4011bed","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382788.7184207} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c8988240-2a6b-11ef-8ad5-3d996a2c698c"},"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/8acf4538-1cc8-4798-8e2b-92ee884b1668? 200 16ms","method":"GET","requestID":"c8985b30-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3? 200 16ms","method":"GET","requestID":"c8988240-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3?"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F88611aaf-a4ab-4b3b-ad45-926a157d2c26#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F88611aaf-a4ab-4b3b-ad45-926a157d2c26","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"d832343f-1734-49e8-ad73-d44d0b89f44c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382788.7239237} 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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"efbf4ea3-ac10-44d3-bf15-c5385d36c56f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382788.724247} 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":"5e4dcea99ed3a0c89b0ac0f4eacc0131"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.154845,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c89b6870-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"POST /devices/8acf4538-1cc8-4798-8e2b-92ee884b1668/signaling 200 10ms","method":"POST","requestID":"c89b6870-2a6b-11ef-8ad5-3d996a2c698c","responseTime":10,"status":200,"url":"/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668/signaling"} gateway-1 | {"time_local":"14/Jun/2024:16:33:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.142","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5e4dcea99ed3a0c89b0ac0f4eacc0131"} experiment-1 | {"level":"info","message":"POST /experiments? 201 137ms","method":"POST","requestID":"5e4dcea99ed3a0c89b0ac0f4eacc0131","responseTime":137,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2dd4406c9ba052e44371070c7d595624","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:08Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.891664,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c89d6440-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:08Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.668532,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:08Z"} device-1 | {"level":"info","message":"POST /devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3/signaling 200 7ms","method":"POST","requestID":"c89d6440-2a6b-11ef-8ad5-3d996a2c698c","responseTime":7,"status":200,"url":"/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382788,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Building connection plan"} 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":"2dd4406c9ba052e44371070c7d595624"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"c2d476e8-85c5-45bb-8f8c-a7387d82befb"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"7b5077de-5e78-4b28-8ab8-dadaf6dc768d"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"2c5801be-e177-4f30-bb29-db4bd2e28d6a"}]},"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/8acf4538-1cc8-4798-8e2b-92ee884b1668"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8acf4538-1cc8-4798-8e2b-92ee884b1668","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8acf4538-1cc8-4798-8e2b-92ee884b1668","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.459514800Z"}]},"request_id":"f54e8b80-5bb5-42d6-bec8-ab80c82f0fa0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382788.752152} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2dd4406c9ba052e44371070c7d595624"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.705052,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:08Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382788,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo"} gateway-1 | {"time_local":"14/Jun/2024:16:33:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8acf4538-1cc8-4798-8e2b-92ee884b1668? HTTP/1.1","status": "200","body_bytes_sent":"283","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2dd4406c9ba052e44371070c7d595624"} device-1 | {"level":"info","message":"GET /devices/8acf4538-1cc8-4798-8e2b-92ee884b1668? 200 13ms","method":"GET","requestID":"2dd4406c9ba052e44371070c7d595624","responseTime":13,"status":200,"url":"/devices/8acf4538-1cc8-4798-8e2b-92ee884b1668?"} 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":"c89f11f0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d798b0becc0139362185446885ee70db","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.715031,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382788,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OH0.zJQoG1XyDVIElKlcCknfeNL4VeizDqTFYFYkx4-8FGo"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d798b0becc0139362185446885ee70db"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"8fbf8bd7-2cb4-420b-86e0-6ef547ce95bd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382788.7704675} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6ede7c67-b8b0-4cb6-ae2c-ec71c2695d75","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382788.7705936} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff31b92df-8cff-4f73-a2ff-b2df9a4d4ea3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:06.545737258Z"}]},"request_id":"83ef1d3c-90f2-403c-9ae3-8c5efb66764e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382788.7714665} 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":"c89f11f0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d798b0becc0139362185446885ee70db"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3? 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":"d798b0becc0139362185446885ee70db"} device-1 | {"level":"info","message":"GET /devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3? 200 14ms","method":"GET","requestID":"d798b0becc0139362185446885ee70db","responseTime":14,"status":200,"url":"/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3?"} 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/b2123799-352b-40a5-9a43-45a67c420078'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/b2123799-352b-40a5-9a43-45a67c420078'"} 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":"c89f11f0-2a6b-11ef-8ad5-3d996a2c698c","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/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b2123799-352b-40a5-9a43-45a67c420078' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b2123799-352b-40a5-9a43-45a67c420078","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"69879e092bef8d524d21e682c6d045a7","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/8acf4538-1cc8-4798-8e2b-92ee884b1668"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/b2123799-352b-40a5-9a43-45a67c420078"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"69879e092bef8d524d21e682c6d045a7","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"69879e092bef8d524d21e682c6d045a7"} device-1 | {"data":{"peerconnection":"b2123799-352b-40a5-9a43-45a67c420078","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"b2123799-352b-40a5-9a43-45a67c420078","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/b2123799-352b-40a5-9a43-45a67c420078' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b2123799-352b-40a5-9a43-45a67c420078","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"17f6e9798fb51e88c266af2b14dc9645","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/8acf4538-1cc8-4798-8e2b-92ee884b1668"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/b2123799-352b-40a5-9a43-45a67c420078"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:09Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb2123799-352b-40a5-9a43-45a67c420078","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"25fe338c-9677-4306-9955-228d029529f5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.0067823} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.307465,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b2123799-352b-40a5-9a43-45a67c420078","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/b2123799-352b-40a5-9a43-45a67c420078","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":"c8c55ea0-2a6b-11ef-8ad5-3d996a2c698c"},"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/b2123799-352b-40a5-9a43-45a67c420078 200 8ms","method":"GET","requestID":"c8c55ea0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/peerconnections/b2123799-352b-40a5-9a43-45a67c420078"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 33ms","method":"POST","requestID":"17f6e9798fb51e88c266af2b14dc9645","responseTime":33,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch","requestID":"17f6e9798fb51e88c266af2b14dc9645"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OX0.p7-Mq9HxlVSAP5-b6HT8GqNVWfUaum6urX5pGmxfF3o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6061b200522f3180dfe9597b67d5ea5b","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:09Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.974653,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382789,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OX0.p7-Mq9HxlVSAP5-b6HT8GqNVWfUaum6urX5pGmxfF3o"} 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":"6061b200522f3180dfe9597b67d5ea5b"},"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/88611aaf-a4ab-4b3b-ad45-926a157d2c26"} gateway-1 | {"time_local":"14/Jun/2024:16:33:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26 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":"6061b200522f3180dfe9597b67d5ea5b"} experiment-1 | {"level":"info","message":"GET /experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26 200 10ms","method":"GET","requestID":"6061b200522f3180dfe9597b67d5ea5b","responseTime":10,"status":200,"url":"/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OX0.p7-Mq9HxlVSAP5-b6HT8GqNVWfUaum6urX5pGmxfF3o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8eaa6d3835297290fa293bbdaa935880","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:09Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.651557,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:09Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382789,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OX0.p7-Mq9HxlVSAP5-b6HT8GqNVWfUaum6urX5pGmxfF3o"} 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":"8eaa6d3835297290fa293bbdaa935880"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:09Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.955631,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:09Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b2123799-352b-40a5-9a43-45a67c420078","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/b2123799-352b-40a5-9a43-45a67c420078","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382789,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OX0.p7-Mq9HxlVSAP5-b6HT8GqNVWfUaum6urX5pGmxfF3o"} 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":"c8d5b250-2a6b-11ef-8ad5-3d996a2c698c"},"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/b2123799-352b-40a5-9a43-45a67c420078' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/b2123799-352b-40a5-9a43-45a67c420078' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b2123799-352b-40a5-9a43-45a67c420078","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} 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/8acf4538-1cc8-4798-8e2b-92ee884b1668"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b2123799-352b-40a5-9a43-45a67c420078"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"d808fb5947d12e9e60777c8488382bdb","responseTime":0,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb2123799-352b-40a5-9a43-45a67c420078': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb2123799-352b-40a5-9a43-45a67c420078","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"55d1f27a-6dc0-480e-b29e-a76c1032783e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.1258214} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"732114bf42974cee5592ad850c333ed0","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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"45bb7517-8667-44ad-8774-d3007a8bcc9c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.1260853} 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/8acf4538-1cc8-4798-8e2b-92ee884b1668"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b2123799-352b-40a5-9a43-45a67c420078"}}},"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":"c8d5b250-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"data":{"peerconnection":"b2123799-352b-40a5-9a43-45a67c420078","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/b2123799-352b-40a5-9a43-45a67c420078 204 37ms","method":"DELETE","requestID":"c8d5b250-2a6b-11ef-8ad5-3d996a2c698c","responseTime":37,"status":204,"url":"/peerconnections/b2123799-352b-40a5-9a43-45a67c420078"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F88611aaf-a4ab-4b3b-ad45-926a157d2c26': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F88611aaf-a4ab-4b3b-ad45-926a157d2c26","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"7baceda4-529f-4a9a-bcff-2c5b9e2c6223","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.1829338} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f08130fe-010c-4b06-a84a-e5f5c97f0a67","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.1832423} 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":"8eaa6d3835297290fa293bbdaa935880"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"} gateway-1 | {"time_local":"14/Jun/2024:16:33:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.151","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8eaa6d3835297290fa293bbdaa935880"} experiment-1 | {"level":"info","message":"DELETE /experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26 204 149ms","method":"DELETE","requestID":"8eaa6d3835297290fa293bbdaa935880","responseTime":149,"status":204,"url":"/experiments/88611aaf-a4ab-4b3b-ad45-926a157d2c26"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 125ms","method":"POST","requestID":"d808fb5947d12e9e60777c8488382bdb","responseTime":125,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.128","http_referrer":"","http_user_agent":"node-fetch","requestID":"d808fb5947d12e9e60777c8488382bdb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 125ms","method":"POST","requestID":"732114bf42974cee5592ad850c333ed0","responseTime":125,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.129","http_referrer":"","http_user_agent":"node-fetch","requestID":"732114bf42974cee5592ad850c333ed0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OX0.p7-Mq9HxlVSAP5-b6HT8GqNVWfUaum6urX5pGmxfF3o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"914eacd9efac87288790cbff4a54d3ac","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"14/Jun/2024:16:33:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1755","request_time":"0.698","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6bb32523348af772275714460dbe2b6a"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:09Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.070849,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:09Z"} gateway-1 | {"time_local":"14/Jun/2024:16:33:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1488","request_time":"0.715","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7ef23e7d02181d61ab0c8202ff871bde"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382789,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OX0.p7-Mq9HxlVSAP5-b6HT8GqNVWfUaum6urX5pGmxfF3o"} 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":"914eacd9efac87288790cbff4a54d3ac"},"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/8acf4538-1cc8-4798-8e2b-92ee884b1668' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02665756-fea6-4925-be1c-5a2fc92f0848","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"acc9975b-7ac7-4ad8-87ce-3204d5fc4f39","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.2869902} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"914eacd9efac87288790cbff4a54d3ac"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9a9c0320-fd43-4962-b1ae-2092398cc18c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.2915099} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/f31b92df-8cff-4f73-a2ff-b2df9a4d4ea3' closed"} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"22","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"914eacd9efac87288790cbff4a54d3ac"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02665756-fea6-4925-be1c-5a2fc92f0848","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"1c0dc19b-f724-472c-aa00-a6b648610b53","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.305396} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9e65d730-dfb8-4c68-a54e-60f10e077b90","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.305772} 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":"914eacd9efac87288790cbff4a54d3ac"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02665756-fea6-4925-be1c-5a2fc92f0848","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02665756-fea6-4925-be1c-5a2fc92f0848","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:09.305380626Z"}]},"request_id":"0f82c881-e15a-49b3-8995-bb9aff1b94b9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.309633} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"914eacd9efac87288790cbff4a54d3ac"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:09 +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":"914eacd9efac87288790cbff4a54d3ac"} device-1 | {"level":"info","message":"POST /devices? 201 56ms","method":"POST","requestID":"914eacd9efac87288790cbff4a54d3ac","responseTime":56,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OX0.p7-Mq9HxlVSAP5-b6HT8GqNVWfUaum6urX5pGmxfF3o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"73f905c2d1730287cb86083a8ecf7012","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:09Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.89403,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382789,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc4OX0.p7-Mq9HxlVSAP5-b6HT8GqNVWfUaum6urX5pGmxfF3o"} 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":"73f905c2d1730287cb86083a8ecf7012"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03147a0b-e755-4c97-af31-557cf4bb8750","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1fa0da89-1d9c-4eda-8c19-de1a9f3e6d9f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.3371768} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"73f905c2d1730287cb86083a8ecf7012"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7847a8d3-6823-48da-8004-f1276bbea553","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.3418252} 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":"73f905c2d1730287cb86083a8ecf7012"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03147a0b-e755-4c97-af31-557cf4bb8750","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"014f0205-5d9f-4bbf-9030-a2c9103ddac2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.352021} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"07cd0b12-8edf-49b3-98cf-e1bb0a14cd99","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.352221} 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":"73f905c2d1730287cb86083a8ecf7012"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03147a0b-e755-4c97-af31-557cf4bb8750","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03147a0b-e755-4c97-af31-557cf4bb8750","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:09.352001734Z"}]},"request_id":"323b9c9e-a16d-4f24-8faf-c31ffd1a38ca","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382789.3561344} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"73f905c2d1730287cb86083a8ecf7012"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"73f905c2d1730287cb86083a8ecf7012"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"73f905c2d1730287cb86083a8ecf7012","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1c3ba935f317dd5f13a5bb346a327e63","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/03147a0b-e755-4c97-af31-557cf4bb8750/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":"1c3ba935f317dd5f13a5bb346a327e63"} device-1 | {"level":"info","message":"OPTIONS /devices/03147a0b-e755-4c97-af31-557cf4bb8750/websocket 200 1ms","method":"OPTIONS","requestID":"1c3ba935f317dd5f13a5bb346a327e63","responseTime":1,"status":200,"url":"/devices/03147a0b-e755-4c97-af31-557cf4bb8750/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a1bb576f0ad3ef0163aa5314a3b2a678","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.700184,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} 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":"a1bb576f0ad3ef0163aa5314a3b2a678"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1c7f4d24ee0bc19460ddcec3f68ff488","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/02665756-fea6-4925-be1c-5a2fc92f0848/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":"1c7f4d24ee0bc19460ddcec3f68ff488"} device-1 | {"level":"info","message":"OPTIONS /devices/02665756-fea6-4925-be1c-5a2fc92f0848/websocket 200 0ms","method":"OPTIONS","requestID":"1c7f4d24ee0bc19460ddcec3f68ff488","responseTime":0,"status":200,"url":"/devices/02665756-fea6-4925-be1c-5a2fc92f0848/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"70d5a86ce3eda90c2b7d04be2fae1610","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.665282,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} 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":"70d5a86ce3eda90c2b7d04be2fae1610"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/03147a0b-e755-4c97-af31-557cf4bb8750/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":"a1bb576f0ad3ef0163aa5314a3b2a678"} device-1 | {"level":"info","message":"POST /devices/03147a0b-e755-4c97-af31-557cf4bb8750/websocket 200 29ms","method":"POST","requestID":"a1bb576f0ad3ef0163aa5314a3b2a678","responseTime":29,"status":200,"url":"/devices/03147a0b-e755-4c97-af31-557cf4bb8750/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/02665756-fea6-4925-be1c-5a2fc92f0848/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":"70d5a86ce3eda90c2b7d04be2fae1610"} device-1 | {"level":"info","message":"POST /devices/02665756-fea6-4925-be1c-5a2fc92f0848/websocket 200 25ms","method":"POST","requestID":"70d5a86ce3eda90c2b7d04be2fae1610","responseTime":25,"status":200,"url":"/devices/02665756-fea6-4925-be1c-5a2fc92f0848/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b25be2b6fadf4bf49ce748d4a33e5d52","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.122541,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} 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":"b25be2b6fadf4bf49ce748d4a33e5d52"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02665756-fea6-4925-be1c-5a2fc92f0848","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02665756-fea6-4925-be1c-5a2fc92f0848","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:09.305380626Z"}]},"request_id":"b46b4418-f777-4457-8f95-2971fc7727fb","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.3919952} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b25be2b6fadf4bf49ce748d4a33e5d52"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/02665756-fea6-4925-be1c-5a2fc92f0848? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b25be2b6fadf4bf49ce748d4a33e5d52"} device-1 | {"level":"info","message":"GET /devices/02665756-fea6-4925-be1c-5a2fc92f0848? 200 12ms","method":"GET","requestID":"b25be2b6fadf4bf49ce748d4a33e5d52","responseTime":12,"status":200,"url":"/devices/02665756-fea6-4925-be1c-5a2fc92f0848?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fdf89badb2d9192aca27dd42d3b8bd4b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.983661,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} 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":"fdf89badb2d9192aca27dd42d3b8bd4b"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03147a0b-e755-4c97-af31-557cf4bb8750","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03147a0b-e755-4c97-af31-557cf4bb8750","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:09.352001734Z"}]},"request_id":"5221275d-0476-4c15-9735-086e4c3f7ecd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.4094748} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fdf89badb2d9192aca27dd42d3b8bd4b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/03147a0b-e755-4c97-af31-557cf4bb8750? 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":"fdf89badb2d9192aca27dd42d3b8bd4b"} device-1 | {"level":"info","message":"GET /devices/03147a0b-e755-4c97-af31-557cf4bb8750? 200 11ms","method":"GET","requestID":"fdf89badb2d9192aca27dd42d3b8bd4b","responseTime":11,"status":200,"url":"/devices/03147a0b-e755-4c97-af31-557cf4bb8750?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"81fdf5b58f1243c571934e6996d39ea9","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:48592","level":"info","msg":"Received request.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.071754,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} 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":"81fdf5b58f1243c571934e6996d39ea9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"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:48592","level":"info","msg":"Received request.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.972088,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca3baaf0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.664879,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca3bd200-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02665756-fea6-4925-be1c-5a2fc92f0848","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02665756-fea6-4925-be1c-5a2fc92f0848","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:09.305380626Z"}]},"request_id":"7aadd3d5-af9e-4c83-8b59-ac234bed6179","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.4647145} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca3baaf0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03147a0b-e755-4c97-af31-557cf4bb8750","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03147a0b-e755-4c97-af31-557cf4bb8750","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:09.352001734Z"}]},"request_id":"80767e94-497d-4979-aad6-6c95d2959580","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.4658458} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca3bd200-2a6b-11ef-8ad5-3d996a2c698c"},"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/02665756-fea6-4925-be1c-5a2fc92f0848? 200 16ms","method":"GET","requestID":"ca3baaf0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/02665756-fea6-4925-be1c-5a2fc92f0848?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/03147a0b-e755-4c97-af31-557cf4bb8750? 200 16ms","method":"GET","requestID":"ca3bd200-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/03147a0b-e755-4c97-af31-557cf4bb8750?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.721677,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} 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":"ca493f80-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.819907,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} 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":"ca49dbc0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02665756-fea6-4925-be1c-5a2fc92f0848","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02665756-fea6-4925-be1c-5a2fc92f0848","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:09.305380626Z"}]},"request_id":"18e75338-3fde-4145-b2c1-27db5a150220","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.556399} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca493f80-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03147a0b-e755-4c97-af31-557cf4bb8750","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03147a0b-e755-4c97-af31-557cf4bb8750","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:09.352001734Z"}]},"request_id":"5bbc9aab-f106-40a6-bb41-16b0e6fbde36","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.5592792} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca49dbc0-2a6b-11ef-8ad5-3d996a2c698c"},"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/02665756-fea6-4925-be1c-5a2fc92f0848? 200 21ms","method":"GET","requestID":"ca493f80-2a6b-11ef-8ad5-3d996a2c698c","responseTime":21,"status":200,"url":"/devices/02665756-fea6-4925-be1c-5a2fc92f0848?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/03147a0b-e755-4c97-af31-557cf4bb8750? 200 18ms","method":"GET","requestID":"ca49dbc0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":18,"status":200,"url":"/devices/03147a0b-e755-4c97-af31-557cf4bb8750?"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F07de66e0-e023-42fe-a7c4-9237d3f567b1#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F07de66e0-e023-42fe-a7c4-9237d3f567b1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"195b1096-3b1a-4e4a-abe3-710c29b518ac","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.5668547} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4330deac-6c35-45f3-8051-59313b047e4b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.5671575} 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":"81fdf5b58f1243c571934e6996d39ea9"},"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:48592","level":"info","msg":"Received request.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.766534,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca4d1010-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 159ms","method":"POST","requestID":"81fdf5b58f1243c571934e6996d39ea9","responseTime":159,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.162","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"81fdf5b58f1243c571934e6996d39ea9"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/02665756-fea6-4925-be1c-5a2fc92f0848/signaling 200 10ms","method":"POST","requestID":"ca4d1010-2a6b-11ef-8ad5-3d996a2c698c","responseTime":10,"status":200,"url":"/devices/02665756-fea6-4925-be1c-5a2fc92f0848/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"521f14d9b3f710a6dfeac3e4339e6a9a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.929592,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} 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":"521f14d9b3f710a6dfeac3e4339e6a9a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.802823,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ca4f5a00-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02665756-fea6-4925-be1c-5a2fc92f0848","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02665756-fea6-4925-be1c-5a2fc92f0848","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:09.305380626Z"}]},"request_id":"fb8bc871-b769-4049-bc99-43bc71556e0c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.5922036} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/03147a0b-e755-4c97-af31-557cf4bb8750/signaling 200 9ms","method":"POST","requestID":"ca4f5a00-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/devices/03147a0b-e755-4c97-af31-557cf4bb8750/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":"521f14d9b3f710a6dfeac3e4339e6a9a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"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":"1ed099f8-3309-468d-9028-8ead22de3dec"},{"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":"72a74d5a-ade8-4d76-94ba-625deeec9a52"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"e615b7bf-7124-4cbc-82f9-bb735c4f767e"}]},"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/03147a0b-e755-4c97-af31-557cf4bb8750"},{"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/02665756-fea6-4925-be1c-5a2fc92f0848"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/02665756-fea6-4925-be1c-5a2fc92f0848? 200 18ms","method":"GET","requestID":"521f14d9b3f710a6dfeac3e4339e6a9a","responseTime":18,"status":200,"url":"/devices/02665756-fea6-4925-be1c-5a2fc92f0848?"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} gateway-1 | {"time_local":"14/Jun/2024:16:33:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/02665756-fea6-4925-be1c-5a2fc92f0848? 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":"521f14d9b3f710a6dfeac3e4339e6a9a"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.945618,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} 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":"ca5155d0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d8abd680fa736e09c8d16f8af6de9595","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.672364,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d8abd680fa736e09c8d16f8af6de9595"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"d9a6251e-bd22-4bab-b9cd-4edeb0f02f44","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.6139832} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"450569ce-76cb-402a-add8-8444cedd8dba","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.6142259} 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":"ca5155d0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03147a0b-e755-4c97-af31-557cf4bb8750","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F03147a0b-e755-4c97-af31-557cf4bb8750","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:09.352001734Z"}]},"request_id":"630334df-0da6-413d-b447-edc16fa8fe9c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.615307} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d8abd680fa736e09c8d16f8af6de9595"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/03147a0b-e755-4c97-af31-557cf4bb8750? 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":"d8abd680fa736e09c8d16f8af6de9595"} device-1 | {"level":"info","message":"GET /devices/03147a0b-e755-4c97-af31-557cf4bb8750? 200 17ms","method":"GET","requestID":"d8abd680fa736e09c8d16f8af6de9595","responseTime":17,"status":200,"url":"/devices/03147a0b-e755-4c97-af31-557cf4bb8750?"} 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/96339138-e2b8-40f5-89fa-8be31b3ad30e'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/96339138-e2b8-40f5-89fa-8be31b3ad30e'"} 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":"ca5155d0-2a6b-11ef-8ad5-3d996a2c698c","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/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/96339138-e2b8-40f5-89fa-8be31b3ad30e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"96339138-e2b8-40f5-89fa-8be31b3ad30e","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"17b1da94ebdcaccbc5b3041f5dd4c01f","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750"},{"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/02665756-fea6-4925-be1c-5a2fc92f0848"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/96339138-e2b8-40f5-89fa-8be31b3ad30e"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"17b1da94ebdcaccbc5b3041f5dd4c01f","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"17b1da94ebdcaccbc5b3041f5dd4c01f"} device-1 | {"data":{"peerconnection":"96339138-e2b8-40f5-89fa-8be31b3ad30e","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"96339138-e2b8-40f5-89fa-8be31b3ad30e","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/96339138-e2b8-40f5-89fa-8be31b3ad30e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"96339138-e2b8-40f5-89fa-8be31b3ad30e","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e5dcca064789713bcd274427db532210","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/03147a0b-e755-4c97-af31-557cf4bb8750"},{"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/02665756-fea6-4925-be1c-5a2fc92f0848"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/96339138-e2b8-40f5-89fa-8be31b3ad30e"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F96339138-e2b8-40f5-89fa-8be31b3ad30e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a9dd826b-7e58-4e84-aa48-b53e733c4cf2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.860079} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.407838,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/96339138-e2b8-40f5-89fa-8be31b3ad30e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/96339138-e2b8-40f5-89fa-8be31b3ad30e","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":"ca78b3f0-2a6b-11ef-8ad5-3d996a2c698c"},"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/96339138-e2b8-40f5-89fa-8be31b3ad30e 200 9ms","method":"GET","requestID":"ca78b3f0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/peerconnections/96339138-e2b8-40f5-89fa-8be31b3ad30e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 32ms","method":"POST","requestID":"e5dcca064789713bcd274427db532210","responseTime":32,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch","requestID":"e5dcca064789713bcd274427db532210"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"607ae7671313bb977add8dcbe7012e4d","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.767157,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} 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":"607ae7671313bb977add8dcbe7012e4d"},"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/07de66e0-e023-42fe-a7c4-9237d3f567b1"} gateway-1 | {"time_local":"14/Jun/2024:16:33:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1 HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"607ae7671313bb977add8dcbe7012e4d"} experiment-1 | {"level":"info","message":"GET /experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1 200 9ms","method":"GET","requestID":"607ae7671313bb977add8dcbe7012e4d","responseTime":9,"status":200,"url":"/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"68a7aa00af71451e3639af93d575abd4","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.648394,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} 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":"68a7aa00af71451e3639af93d575abd4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.679705,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:11Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/96339138-e2b8-40f5-89fa-8be31b3ad30e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/96339138-e2b8-40f5-89fa-8be31b3ad30e","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382791,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5MX0.gdagCgU803e-UzJkCvhoFvCD9XFdAh6_Qt5EiGVqLkE"} 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":"ca8955c0-2a6b-11ef-8ad5-3d996a2c698c"},"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/96339138-e2b8-40f5-89fa-8be31b3ad30e' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/96339138-e2b8-40f5-89fa-8be31b3ad30e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"96339138-e2b8-40f5-89fa-8be31b3ad30e","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F96339138-e2b8-40f5-89fa-8be31b3ad30e': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F96339138-e2b8-40f5-89fa-8be31b3ad30e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"9ecf4744-74f0-45a7-83fe-650ed145a848","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.9806838} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"57726e42-a2f7-483a-9fd6-ba76cf15a8d1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382791.9810116} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f1cbf294430add1b9675efa6f46dcbc2","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":"ca8955c0-2a6b-11ef-8ad5-3d996a2c698c"},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/03147a0b-e755-4c97-af31-557cf4bb8750"},{"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/02665756-fea6-4925-be1c-5a2fc92f0848"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/96339138-e2b8-40f5-89fa-8be31b3ad30e"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"13bc74b317f9c6b95550719d5f61fc9f","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/03147a0b-e755-4c97-af31-557cf4bb8750"},{"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/02665756-fea6-4925-be1c-5a2fc92f0848"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/96339138-e2b8-40f5-89fa-8be31b3ad30e"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/96339138-e2b8-40f5-89fa-8be31b3ad30e 204 39ms","method":"DELETE","requestID":"ca8955c0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":39,"status":204,"url":"/peerconnections/96339138-e2b8-40f5-89fa-8be31b3ad30e"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F07de66e0-e023-42fe-a7c4-9237d3f567b1': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F07de66e0-e023-42fe-a7c4-9237d3f567b1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"70421f53-3381-4baa-8491-08682b252b09","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382792.0386767} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"39cbb6c1-4ab4-4d81-8cdb-73571d125198","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382792.038989} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"68a7aa00af71451e3639af93d575abd4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"} gateway-1 | {"time_local":"14/Jun/2024:16:33:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.147","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"68a7aa00af71451e3639af93d575abd4"} experiment-1 | {"level":"info","message":"DELETE /experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1 204 144ms","method":"DELETE","requestID":"68a7aa00af71451e3639af93d575abd4","responseTime":144,"status":204,"url":"/experiments/07de66e0-e023-42fe-a7c4-9237d3f567b1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 118ms","method":"POST","requestID":"f1cbf294430add1b9675efa6f46dcbc2","responseTime":118,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 117ms","method":"POST","requestID":"13bc74b317f9c6b95550719d5f61fc9f","responseTime":117,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:12 +0000","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":"f1cbf294430add1b9675efa6f46dcbc2"} gateway-1 | {"time_local":"14/Jun/2024:16:33:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.124","http_referrer":"","http_user_agent":"node-fetch","requestID":"13bc74b317f9c6b95550719d5f61fc9f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5Mn0.bb3p3yWjcmSoRh3PVWPkmLQpDyCVqgeuHkIXChyhCzk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ff44a6971fc8179d376c901f8dfd52b4","responseTime":3,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1996","request_time":"0.766","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2a270d83bd82ef3013c7d22d95dfc0c4"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"14/Jun/2024:16:33:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1729","request_time":"0.758","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"41801ceff22204d79d1b90f5a6717d2a"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:12Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":3.025034,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382792,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5Mn0.bb3p3yWjcmSoRh3PVWPkmLQpDyCVqgeuHkIXChyhCzk"} 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":"ff44a6971fc8179d376c901f8dfd52b4"},"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/03147a0b-e755-4c97-af31-557cf4bb8750' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/02665756-fea6-4925-be1c-5a2fc92f0848' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8a6b259b-af09-492e-9269-3e3a1b6bbc8c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382792.141907} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff44a6971fc8179d376c901f8dfd52b4"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"62881c95-c2cd-4c57-8b14-3723379d4b7f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382792.1489758} 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":"ff44a6971fc8179d376c901f8dfd52b4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"1995603c-27da-4f55-bafe-cf9104035883","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382792.159417} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d7dd9bf4-5041-40be-a9a3-f2f9776838de","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382792.1596725} 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":"ff44a6971fc8179d376c901f8dfd52b4"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:12.159395751Z"}]},"request_id":"aa9ee23a-939e-427b-ac0d-0fda90df7be8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382792.1637046} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ff44a6971fc8179d376c901f8dfd52b4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.065","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ff44a6971fc8179d376c901f8dfd52b4"} device-1 | {"level":"info","message":"POST /devices? 201 56ms","method":"POST","requestID":"ff44a6971fc8179d376c901f8dfd52b4","responseTime":56,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5Mn0.bb3p3yWjcmSoRh3PVWPkmLQpDyCVqgeuHkIXChyhCzk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2a1686bcc9ccc7d0d84ef26d2058d598","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:12Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.898294,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382792,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5Mn0.bb3p3yWjcmSoRh3PVWPkmLQpDyCVqgeuHkIXChyhCzk"} 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":"2a1686bcc9ccc7d0d84ef26d2058d598"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3135403d-bc9b-4fe6-9abb-5bcba9947a16","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8704a1f0-1682-4f34-ac0d-587d92d50d39","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382792.1909056} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a1686bcc9ccc7d0d84ef26d2058d598"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"afc3ef05-8a48-4601-99b5-f029dc6afc15","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382792.19672} 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":"2a1686bcc9ccc7d0d84ef26d2058d598"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3135403d-bc9b-4fe6-9abb-5bcba9947a16","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"0a60e0e1-41b6-46a8-8edf-be4b7ea02810","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382792.2084} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a99bf11a-fa93-45ed-bbaf-ab182b01611e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382792.2086296} 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":"2a1686bcc9ccc7d0d84ef26d2058d598"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3135403d-bc9b-4fe6-9abb-5bcba9947a16","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3135403d-bc9b-4fe6-9abb-5bcba9947a16","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:12.208379335Z"}]},"request_id":"6c8aac48-86c5-4800-a083-897b516c8621","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382792.213313} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2a1686bcc9ccc7d0d84ef26d2058d598"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:12 +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":"2a1686bcc9ccc7d0d84ef26d2058d598"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"2a1686bcc9ccc7d0d84ef26d2058d598","responseTime":45,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bc4a8e8f957f7caa66408f4bf7002dc1","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee/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":"bc4a8e8f957f7caa66408f4bf7002dc1"} device-1 | {"level":"info","message":"OPTIONS /devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee/websocket 200 1ms","method":"OPTIONS","requestID":"bc4a8e8f957f7caa66408f4bf7002dc1","responseTime":1,"status":200,"url":"/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4fb27b7f118f354f8ac752a8be642b41","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.698332,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"4fb27b7f118f354f8ac752a8be642b41"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d235bd35ef2e1c94d4b9422e21f74385","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16/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":"d235bd35ef2e1c94d4b9422e21f74385"} device-1 | {"level":"info","message":"OPTIONS /devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16/websocket 200 1ms","method":"OPTIONS","requestID":"d235bd35ef2e1c94d4b9422e21f74385","responseTime":1,"status":200,"url":"/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"33ce8d0ac05d35286a67b60e8a209780","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.695534,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"33ce8d0ac05d35286a67b60e8a209780"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee/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":"4fb27b7f118f354f8ac752a8be642b41"} device-1 | {"level":"info","message":"POST /devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee/websocket 200 28ms","method":"POST","requestID":"4fb27b7f118f354f8ac752a8be642b41","responseTime":28,"status":200,"url":"/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.024","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"33ce8d0ac05d35286a67b60e8a209780"} device-1 | {"level":"info","message":"POST /devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16/websocket 200 21ms","method":"POST","requestID":"33ce8d0ac05d35286a67b60e8a209780","responseTime":21,"status":200,"url":"/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"455cd64ec3c004e46486d6be0b97b57d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.676305,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"455cd64ec3c004e46486d6be0b97b57d"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:12.159395751Z"}]},"request_id":"a89c605b-bd5a-4771-bc1b-dd543888485b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.2483537} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"455cd64ec3c004e46486d6be0b97b57d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee? 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":"455cd64ec3c004e46486d6be0b97b57d"} device-1 | {"level":"info","message":"GET /devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee? 200 13ms","method":"GET","requestID":"455cd64ec3c004e46486d6be0b97b57d","responseTime":13,"status":200,"url":"/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7c416efcdea5ff1b29360dfa4b9ce84f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.73095,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"7c416efcdea5ff1b29360dfa4b9ce84f"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3135403d-bc9b-4fe6-9abb-5bcba9947a16","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3135403d-bc9b-4fe6-9abb-5bcba9947a16","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:12.208379335Z"}]},"request_id":"35a53499-92e2-4c6a-984b-27848d5646a5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.2647476} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c416efcdea5ff1b29360dfa4b9ce84f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7c416efcdea5ff1b29360dfa4b9ce84f"} device-1 | {"level":"info","message":"GET /devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16? 200 11ms","method":"GET","requestID":"7c416efcdea5ff1b29360dfa4b9ce84f","responseTime":11,"status":200,"url":"/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b4859d1bca755980f7c8960843cffd04","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:48592","level":"info","msg":"Received request.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.677361,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b4859d1bca755980f7c8960843cffd04"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"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:48592","level":"info","msg":"Received request.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.683859,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"cbef4e60-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.628315,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"cbef7570-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:12.159395751Z"}]},"request_id":"36ba3283-259c-492e-885c-de9d68db8f7a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.3191338} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbef4e60-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3135403d-bc9b-4fe6-9abb-5bcba9947a16","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3135403d-bc9b-4fe6-9abb-5bcba9947a16","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:12.208379335Z"}]},"request_id":"e34d6688-f610-4b03-93e7-57fd5d36463e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.3200889} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbef7570-2a6b-11ef-8ad5-3d996a2c698c"},"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/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee? 200 15ms","method":"GET","requestID":"cbef4e60-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16? 200 14ms","method":"GET","requestID":"cbef7570-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"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:48592","level":"info","msg":"Received request.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.921519,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbf8c440-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.79265,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"cbf8eb50-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:12.159395751Z"}]},"request_id":"7cd3812f-ec10-4100-a430-033c37e1666e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.381744} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbf8c440-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3135403d-bc9b-4fe6-9abb-5bcba9947a16","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3135403d-bc9b-4fe6-9abb-5bcba9947a16","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:12.208379335Z"}]},"request_id":"e86554db-c0a9-4a23-89c2-40c8b28900d6","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.3826663} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbf8eb50-2a6b-11ef-8ad5-3d996a2c698c"},"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/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee? 200 15ms","method":"GET","requestID":"cbf8c440-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16? 200 15ms","method":"GET","requestID":"cbf8eb50-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.589413,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbfbaa70-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2adde3b7-812c-4681-ba6c-81a54439222b#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2adde3b7-812c-4681-ba6c-81a54439222b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"08b178d5-201a-4387-aaeb-2784b2016e19","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.3958333} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"df8c799e-553a-4bd0-aa0e-ebc7e2f065a2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.3961554} 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":"b4859d1bca755980f7c8960843cffd04"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee/signaling 200 8ms","method":"POST","requestID":"cbfbaa70-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.805173,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cbfda640-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.140","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b4859d1bca755980f7c8960843cffd04"} experiment-1 | {"level":"info","message":"POST /experiments? 201 135ms","method":"POST","requestID":"b4859d1bca755980f7c8960843cffd04","responseTime":135,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16/signaling 200 9ms","method":"POST","requestID":"cbfda640-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"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":"acd41d48-f090-4043-a20c-72212a7672d7"},{"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":"35b00153-08b7-4ac4-9e89-b83b8b9864ef"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"2c7037b0-3e02-4099-9b67-a680f4e88cad"}]},"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/3135403d-bc9b-4fe6-9abb-5bcba9947a16"},{"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/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b0405c2d13299b77d586076c3d5d0c62","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:48592","level":"info","msg":"Received request.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.650771,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"cbffa210-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.755453,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"b0405c2d13299b77d586076c3d5d0c62"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:12.159395751Z"}]},"request_id":"cee5b98e-aa5f-43f3-836e-fdba3faeb619","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.4279058} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b0405c2d13299b77d586076c3d5d0c62"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee? 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":"b0405c2d13299b77d586076c3d5d0c62"} device-1 | {"level":"info","message":"GET /devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee? 200 14ms","method":"GET","requestID":"b0405c2d13299b77d586076c3d5d0c62","responseTime":14,"status":200,"url":"/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee?"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"e5553cc2-00fb-42bf-9988-5083963ee3a6","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.4322593} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dc0a1bfc-5748-40ed-9f6d-8d30aee2d4c2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.4325464} 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":"cbffa210-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a0d2757b623109f2cea20c977259a2bf","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.033668,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"a0d2757b623109f2cea20c977259a2bf"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3135403d-bc9b-4fe6-9abb-5bcba9947a16","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3135403d-bc9b-4fe6-9abb-5bcba9947a16","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:12.208379335Z"}]},"request_id":"7e8cc745-f9f4-4393-b915-ae7e5873312e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.4464674} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a0d2757b623109f2cea20c977259a2bf"},"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/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 34ms","method":"POST","requestID":"cbffa210-2a6b-11ef-8ad5-3d996a2c698c","responseTime":34,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16? 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":"a0d2757b623109f2cea20c977259a2bf"} device-1 | {"level":"info","message":"GET /devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16? 200 15ms","method":"GET","requestID":"a0d2757b623109f2cea20c977259a2bf","responseTime":15,"status":200,"url":"/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"080f98b7-cc16-4fa5-8cef-4eb2e7df0c14","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"fb63c17a52bea977754c214678a199c4","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/3135403d-bc9b-4fe6-9abb-5bcba9947a16"},{"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/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"fb63c17a52bea977754c214678a199c4","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"fb63c17a52bea977754c214678a199c4"} device-1 | {"data":{"peerconnection":"080f98b7-cc16-4fa5-8cef-4eb2e7df0c14","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"080f98b7-cc16-4fa5-8cef-4eb2e7df0c14","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/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"080f98b7-cc16-4fa5-8cef-4eb2e7df0c14","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"87cd9cda20fdf7824d716bf2c532c006","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/3135403d-bc9b-4fe6-9abb-5bcba9947a16"},{"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/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F080f98b7-cc16-4fa5-8cef-4eb2e7df0c14","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d56133c9-682b-4606-99ec-874046d830d3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.6806061} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.12427,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14","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":"cc270030-2a6b-11ef-8ad5-3d996a2c698c"},"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/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14 200 10ms","method":"GET","requestID":"cc270030-2a6b-11ef-8ad5-3d996a2c698c","responseTime":10,"status":200,"url":"/peerconnections/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"87cd9cda20fdf7824d716bf2c532c006","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"87cd9cda20fdf7824d716bf2c532c006"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f69e13349222085f01e6a18876b8a1bc","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/2adde3b7-812c-4681-ba6c-81a54439222b"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.749316,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"f69e13349222085f01e6a18876b8a1bc"},"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/2adde3b7-812c-4681-ba6c-81a54439222b"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/2adde3b7-812c-4681-ba6c-81a54439222b HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f69e13349222085f01e6a18876b8a1bc"} experiment-1 | {"level":"info","message":"GET /experiments/2adde3b7-812c-4681-ba6c-81a54439222b 200 13ms","method":"GET","requestID":"f69e13349222085f01e6a18876b8a1bc","responseTime":13,"status":200,"url":"/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"721663ac1276ea9c2040ffa8a6b1dbbe","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/2adde3b7-812c-4681-ba6c-81a54439222b"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.658656,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"721663ac1276ea9c2040ffa8a6b1dbbe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.721898,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"cc3976c0-2a6b-11ef-8ad5-3d996a2c698c"},"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/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"080f98b7-cc16-4fa5-8cef-4eb2e7df0c14","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F080f98b7-cc16-4fa5-8cef-4eb2e7df0c14': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F080f98b7-cc16-4fa5-8cef-4eb2e7df0c14","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"490083d4-7b32-46cd-8330-9cfced1c3c06","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.8133287} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"31aecebc-65cf-4eb2-a724-0dae2494bd56","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.8135905} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3019fc878b31e7022137e6beea919962","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"695a6bde7078963216a2a63fbf82932b","responseTime":0,"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":"cc3976c0-2a6b-11ef-8ad5-3d996a2c698c"},"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","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/3135403d-bc9b-4fe6-9abb-5bcba9947a16"},{"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/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14"}}},"level":"info","message":"received a callback"} 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/3135403d-bc9b-4fe6-9abb-5bcba9947a16"},{"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/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"080f98b7-cc16-4fa5-8cef-4eb2e7df0c14","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/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14 204 34ms","method":"DELETE","requestID":"cc3976c0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":34,"status":204,"url":"/peerconnections/080f98b7-cc16-4fa5-8cef-4eb2e7df0c14"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2adde3b7-812c-4681-ba6c-81a54439222b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2adde3b7-812c-4681-ba6c-81a54439222b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"2b4db10f-7500-4b5f-8ec9-28032235bee9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.8638532} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bff814fe-b259-4352-b767-1ec6d514b832","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.864138} 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":"721663ac1276ea9c2040ffa8a6b1dbbe"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/2adde3b7-812c-4681-ba6c-81a54439222b"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/2adde3b7-812c-4681-ba6c-81a54439222b HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.132","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"721663ac1276ea9c2040ffa8a6b1dbbe"} experiment-1 | {"level":"info","message":"DELETE /experiments/2adde3b7-812c-4681-ba6c-81a54439222b 204 129ms","method":"DELETE","requestID":"721663ac1276ea9c2040ffa8a6b1dbbe","responseTime":129,"status":204,"url":"/experiments/2adde3b7-812c-4681-ba6c-81a54439222b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 105ms","method":"POST","requestID":"3019fc878b31e7022137e6beea919962","responseTime":105,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.108","http_referrer":"","http_user_agent":"node-fetch","requestID":"3019fc878b31e7022137e6beea919962"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 103ms","method":"POST","requestID":"695a6bde7078963216a2a63fbf82932b","responseTime":103,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.109","http_referrer":"","http_user_agent":"node-fetch","requestID":"695a6bde7078963216a2a63fbf82932b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"112785cc8253e871cfda0eaad20f4834","responseTime":5,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1729","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":"79a6782d7366a09bff8eb8712b4de887"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1997","request_time":"0.716","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"045bd5c5d3aa7c6d61bdb85140b8c6e0"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.729707,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"112785cc8253e871cfda0eaad20f4834"},"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/3135403d-bc9b-4fe6-9abb-5bcba9947a16' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/268fa0f0-353a-4aa8-ab6d-c4c0ac44a5ee' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F250c921c-16be-4d6d-aa88-75b189bc915a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"583f6707-c7f2-4fcf-b32f-b50504ce2575","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.9455795} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"112785cc8253e871cfda0eaad20f4834"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d10bc699-545c-4025-a0e9-52fca79b3ee2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.9503255} 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":"112785cc8253e871cfda0eaad20f4834"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F250c921c-16be-4d6d-aa88-75b189bc915a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"b71d0e7e-72b7-4f02-b2aa-cee2ef18b9e0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.9597576} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f0dc1c79-4099-4621-8b81-c3f8d34bfa46","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.9607003} 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":"112785cc8253e871cfda0eaad20f4834"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F250c921c-16be-4d6d-aa88-75b189bc915a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F250c921c-16be-4d6d-aa88-75b189bc915a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:14.959741694Z"}]},"request_id":"23641922-eb20-4732-8f6b-6740719f9e94","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.9651434} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"112785cc8253e871cfda0eaad20f4834"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.050","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"112785cc8253e871cfda0eaad20f4834"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"112785cc8253e871cfda0eaad20f4834","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"af99edb774d3391ea1c01af22308fb30","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.713522,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382794,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NH0.Oj0D6rrME378eD24w-sQ0Bbjm4EOkpNpFWM_TZq5hS0"} 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":"af99edb774d3391ea1c01af22308fb30"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"57c51385-d39a-4459-8c9e-2b706e117d56","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.986943} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af99edb774d3391ea1c01af22308fb30"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ee1eeea0-87c7-4d8f-ac35-eb01f87831a7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382794.9921503} 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":"af99edb774d3391ea1c01af22308fb30"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"9f14494c-b48c-4a94-aea4-36c72f95c0a1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382795.006772} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6d68a392-39a6-435d-8ef4-a2bcd8952d63","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382795.007038} 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":"af99edb774d3391ea1c01af22308fb30"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:15.006754590Z"}]},"request_id":"049204a7-0143-445c-9576-d1adc8bcb995","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382795.0113354} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"af99edb774d3391ea1c01af22308fb30"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"af99edb774d3391ea1c01af22308fb30"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"af99edb774d3391ea1c01af22308fb30","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NX0.tyLJy5a9x2OhTRk1Jbx7ATP6kd42OKecfUVclHt5P2U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f17783fa300a5e2413c97385f3ac026f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:15Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.780585,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382795,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NX0.tyLJy5a9x2OhTRk1Jbx7ATP6kd42OKecfUVclHt5P2U"} 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":"f17783fa300a5e2413c97385f3ac026f"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:15.006754590Z"}]},"request_id":"f8da0a37-d40d-44e3-8a0c-8e0f5b4c385d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382795.4993615} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f17783fa300a5e2413c97385f3ac026f"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"96454b51-fb7e-4370-9cd0-8d7b3c6848c0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382795.5069711} 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":"f17783fa300a5e2413c97385f3ac026f"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:15.006754590Z"}]},"request_id":"5417dc14-139e-4342-a32e-5492019278fe","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382795.519274} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f17783fa300a5e2413c97385f3ac026f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/2a3eeb67-2235-45cf-806a-179a5ef92748 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.036","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f17783fa300a5e2413c97385f3ac026f"} device-1 | {"level":"info","message":"PATCH /devices/2a3eeb67-2235-45cf-806a-179a5ef92748 200 32ms","method":"PATCH","requestID":"f17783fa300a5e2413c97385f3ac026f","responseTime":32,"status":200,"url":"/devices/2a3eeb67-2235-45cf-806a-179a5ef92748"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NX0.tyLJy5a9x2OhTRk1Jbx7ATP6kd42OKecfUVclHt5P2U","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"99c94a57e7868c5551d293c2eaea7a86","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:15Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.744742,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382795,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5NX0.tyLJy5a9x2OhTRk1Jbx7ATP6kd42OKecfUVclHt5P2U"} 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":"99c94a57e7868c5551d293c2eaea7a86"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2a3eeb67-2235-45cf-806a-179a5ef92748/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.019","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"99c94a57e7868c5551d293c2eaea7a86"} device-1 | {"level":"info","message":"POST /devices/2a3eeb67-2235-45cf-806a-179a5ef92748/websocket 200 15ms","method":"POST","requestID":"99c94a57e7868c5551d293c2eaea7a86","responseTime":15,"status":200,"url":"/devices/2a3eeb67-2235-45cf-806a-179a5ef92748/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f6680ade8f2443148c63ea9c4953c991","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/250c921c-16be-4d6d-aa88-75b189bc915a/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f6680ade8f2443148c63ea9c4953c991"} device-1 | {"level":"info","message":"OPTIONS /devices/250c921c-16be-4d6d-aa88-75b189bc915a/websocket 200 0ms","method":"OPTIONS","requestID":"f6680ade8f2443148c63ea9c4953c991","responseTime":0,"status":200,"url":"/devices/250c921c-16be-4d6d-aa88-75b189bc915a/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5Nn0.qxuUto14-oRjxEtBoi5TBT_oCxLdY-iwGGXdTfQZ91A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b2306a7c4d77488a51f1107e11f14a29","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:16Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.732076,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:16Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/250c921c-16be-4d6d-aa88-75b189bc915a","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/250c921c-16be-4d6d-aa88-75b189bc915a","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382796,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5Nn0.qxuUto14-oRjxEtBoi5TBT_oCxLdY-iwGGXdTfQZ91A"} 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":"b2306a7c4d77488a51f1107e11f14a29"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/250c921c-16be-4d6d-aa88-75b189bc915a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.020","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b2306a7c4d77488a51f1107e11f14a29"} device-1 | {"level":"info","message":"POST /devices/250c921c-16be-4d6d-aa88-75b189bc915a/websocket 200 16ms","method":"POST","requestID":"b2306a7c4d77488a51f1107e11f14a29","responseTime":16,"status":200,"url":"/devices/250c921c-16be-4d6d-aa88-75b189bc915a/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/250c921c-16be-4d6d-aa88-75b189bc915a' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5Nn0.qxuUto14-oRjxEtBoi5TBT_oCxLdY-iwGGXdTfQZ91A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"03f81e77eca222d8b6197ec95c5bcdc3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:16Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.689206,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/250c921c-16be-4d6d-aa88-75b189bc915a","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/250c921c-16be-4d6d-aa88-75b189bc915a","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382796,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5Nn0.qxuUto14-oRjxEtBoi5TBT_oCxLdY-iwGGXdTfQZ91A"} 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":"03f81e77eca222d8b6197ec95c5bcdc3"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F250c921c-16be-4d6d-aa88-75b189bc915a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F250c921c-16be-4d6d-aa88-75b189bc915a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:14.959741694Z"}]},"request_id":"80bc3d82-d6ec-4b33-b5ef-bfc426bd2b00","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382796.9789863} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"03f81e77eca222d8b6197ec95c5bcdc3"},"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/250c921c-16be-4d6d-aa88-75b189bc915a? 200 12ms","method":"GET","requestID":"03f81e77eca222d8b6197ec95c5bcdc3","responseTime":12,"status":200,"url":"/devices/250c921c-16be-4d6d-aa88-75b189bc915a?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/250c921c-16be-4d6d-aa88-75b189bc915a? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"03f81e77eca222d8b6197ec95c5bcdc3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5Nn0.qxuUto14-oRjxEtBoi5TBT_oCxLdY-iwGGXdTfQZ91A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"02a293f933e748cf1c259775dbf98709","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:16Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.644215,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382796,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5Nn0.qxuUto14-oRjxEtBoi5TBT_oCxLdY-iwGGXdTfQZ91A"} 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":"02a293f933e748cf1c259775dbf98709"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:15.006754590Z"}]},"request_id":"6e355478-68c8-4b94-b45a-891598b08946","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382796.9953153} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02a293f933e748cf1c259775dbf98709"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2a3eeb67-2235-45cf-806a-179a5ef92748? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"02a293f933e748cf1c259775dbf98709"} device-1 | {"level":"info","message":"GET /devices/2a3eeb67-2235-45cf-806a-179a5ef92748? 200 12ms","method":"GET","requestID":"02a293f933e748cf1c259775dbf98709","responseTime":12,"status":200,"url":"/devices/2a3eeb67-2235-45cf-806a-179a5ef92748?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5N30.nD6-SkEhLjN95OaLvvnMjclysZdpO4n1-QbOzQAtHac","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"42537ff5a5f251adea7731e2dbd06ae6","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:48592","level":"info","msg":"Received request.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.701844,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382797,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5N30.nD6-SkEhLjN95OaLvvnMjclysZdpO4n1-QbOzQAtHac"} 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":"42537ff5a5f251adea7731e2dbd06ae6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"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:48592","level":"info","msg":"Received request.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.914786,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/250c921c-16be-4d6d-aa88-75b189bc915a","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/250c921c-16be-4d6d-aa88-75b189bc915a","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382797,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5N30.nD6-SkEhLjN95OaLvvnMjclysZdpO4n1-QbOzQAtHac"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd8f69d0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.704465,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382797,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5N30.nD6-SkEhLjN95OaLvvnMjclysZdpO4n1-QbOzQAtHac"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd8fb7f0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F250c921c-16be-4d6d-aa88-75b189bc915a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F250c921c-16be-4d6d-aa88-75b189bc915a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:14.959741694Z"}]},"request_id":"87781fe3-284c-4c6a-8171-0b3cdf28fa38","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382797.0482845} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd8f69d0-2a6b-11ef-8ad5-3d996a2c698c"},"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/250c921c-16be-4d6d-aa88-75b189bc915a? 200 15ms","method":"GET","requestID":"cd8f69d0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/250c921c-16be-4d6d-aa88-75b189bc915a?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:15.006754590Z"}]},"request_id":"5f5f3e94-f263-4645-b92a-39efd77fd3d2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382797.0520139} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd8fb7f0-2a6b-11ef-8ad5-3d996a2c698c"},"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/2a3eeb67-2235-45cf-806a-179a5ef92748? 200 18ms","method":"GET","requestID":"cd8fb7f0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":18,"status":200,"url":"/devices/2a3eeb67-2235-45cf-806a-179a5ef92748?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"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/ae408993-9465-49ce-bab3-230ae64ef94f"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.74451,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/250c921c-16be-4d6d-aa88-75b189bc915a","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/250c921c-16be-4d6d-aa88-75b189bc915a","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382797,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5N30.nD6-SkEhLjN95OaLvvnMjclysZdpO4n1-QbOzQAtHac"} 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":"cd984370-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.66522,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382797,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5N30.nD6-SkEhLjN95OaLvvnMjclysZdpO4n1-QbOzQAtHac"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd989190-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F250c921c-16be-4d6d-aa88-75b189bc915a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F250c921c-16be-4d6d-aa88-75b189bc915a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:14.959741694Z"}]},"request_id":"33dd1726-4a79-4a17-88b1-09c0c0f38e91","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382797.105067} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd984370-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:15.006754590Z"}]},"request_id":"e2db068d-7dd7-412e-a658-548df016e9a7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382797.106021} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd989190-2a6b-11ef-8ad5-3d996a2c698c"},"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/250c921c-16be-4d6d-aa88-75b189bc915a? 200 15ms","method":"GET","requestID":"cd984370-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/250c921c-16be-4d6d-aa88-75b189bc915a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2a3eeb67-2235-45cf-806a-179a5ef92748? 200 14ms","method":"GET","requestID":"cd989190-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/2a3eeb67-2235-45cf-806a-179a5ef92748?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.097222,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/250c921c-16be-4d6d-aa88-75b189bc915a","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/250c921c-16be-4d6d-aa88-75b189bc915a","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd9b0290-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fae408993-9465-49ce-bab3-230ae64ef94f#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fae408993-9465-49ce-bab3-230ae64ef94f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"fd02beb7-fbf8-48ce-925e-b59a4e31c3ef","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382797.118345} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bd4083a8-94a9-4ffb-9f54-c2e4e200eda2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382797.1187081} 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":"42537ff5a5f251adea7731e2dbd06ae6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/250c921c-16be-4d6d-aa88-75b189bc915a/signaling 200 9ms","method":"POST","requestID":"cd9b0290-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/devices/250c921c-16be-4d6d-aa88-75b189bc915a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:17Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.755875,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"14/Jun/2024:16:33:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.130","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"42537ff5a5f251adea7731e2dbd06ae6"} experiment-1 | {"level":"info","message":"POST /experiments? 201 125ms","method":"POST","requestID":"42537ff5a5f251adea7731e2dbd06ae6","responseTime":125,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd9cfe60-2a6b-11ef-8ad5-3d996a2c698c"},"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/2a3eeb67-2235-45cf-806a-179a5ef92748/signaling 200 8ms","method":"POST","requestID":"cd9cfe60-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/devices/2a3eeb67-2235-45cf-806a-179a5ef92748/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"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":"b0dd51dc-1977-46ad-9ff1-94b1048e218b"},{"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":"54779a2f-64b0-4022-89db-c14ddcabc87e"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"b6447a00-8f17-449e-844e-48f19276ae62"}]},"level":"info","message":"Built pairwise service configurations"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5N30.nD6-SkEhLjN95OaLvvnMjclysZdpO4n1-QbOzQAtHac","level":"info","message":"auth send jwt"} 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/2a3eeb67-2235-45cf-806a-179a5ef92748"},{"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/250c921c-16be-4d6d-aa88-75b189bc915a"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a8b814009353312dd5a90d9b97b75afa","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:48592","level":"info","msg":"Received request.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.859861,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/250c921c-16be-4d6d-aa88-75b189bc915a","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/250c921c-16be-4d6d-aa88-75b189bc915a","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382797,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5N30.nD6-SkEhLjN95OaLvvnMjclysZdpO4n1-QbOzQAtHac"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a8b814009353312dd5a90d9b97b75afa"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.922879,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382797,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5N30.nD6-SkEhLjN95OaLvvnMjclysZdpO4n1-QbOzQAtHac"} 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":"cd9efa30-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F250c921c-16be-4d6d-aa88-75b189bc915a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F250c921c-16be-4d6d-aa88-75b189bc915a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:14.959741694Z"}]},"request_id":"837f90b1-0b19-427b-9860-08397e61fa90","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382797.1461437} 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":"a8b814009353312dd5a90d9b97b75afa"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/250c921c-16be-4d6d-aa88-75b189bc915a? 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":"a8b814009353312dd5a90d9b97b75afa"} device-1 | {"level":"info","message":"GET /devices/250c921c-16be-4d6d-aa88-75b189bc915a? 200 19ms","method":"GET","requestID":"a8b814009353312dd5a90d9b97b75afa","responseTime":19,"status":200,"url":"/devices/250c921c-16be-4d6d-aa88-75b189bc915a?"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"22a8897c-5bce-4a24-bb34-80ce2e95e18e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382797.1567752} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"62a25c61-52bf-4c41-a263-a5d6da64638b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382797.1570094} 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":"cd9efa30-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5N30.nD6-SkEhLjN95OaLvvnMjclysZdpO4n1-QbOzQAtHac","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"197db9840b1f07dc56bb8c760563ffaa","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.683385,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382797,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5N30.nD6-SkEhLjN95OaLvvnMjclysZdpO4n1-QbOzQAtHac"} 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":"197db9840b1f07dc56bb8c760563ffaa"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2a3eeb67-2235-45cf-806a-179a5ef92748","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:15.006754590Z"}]},"request_id":"36bfaa0b-84d5-42cc-b025-49887e8f850f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382797.1688125} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"197db9840b1f07dc56bb8c760563ffaa"},"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/e53bcfc3-f23e-4731-8e37-8b06ec480c08'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/e53bcfc3-f23e-4731-8e37-8b06ec480c08'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 34ms","method":"POST","requestID":"cd9efa30-2a6b-11ef-8ad5-3d996a2c698c","responseTime":34,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2a3eeb67-2235-45cf-806a-179a5ef92748? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"197db9840b1f07dc56bb8c760563ffaa"} device-1 | {"level":"info","message":"GET /devices/2a3eeb67-2235-45cf-806a-179a5ef92748? 200 13ms","method":"GET","requestID":"197db9840b1f07dc56bb8c760563ffaa","responseTime":13,"status":200,"url":"/devices/2a3eeb67-2235-45cf-806a-179a5ef92748?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"data":{"peerconnection":"e53bcfc3-f23e-4731-8e37-8b06ec480c08","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/e53bcfc3-f23e-4731-8e37-8b06ec480c08' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e53bcfc3-f23e-4731-8e37-8b06ec480c08","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"dea7d056d1a67d7c175694a3a1397c55","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748"},{"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/250c921c-16be-4d6d-aa88-75b189bc915a"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/e53bcfc3-f23e-4731-8e37-8b06ec480c08"}}},"level":"info","message":"received a callback"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"dea7d056d1a67d7c175694a3a1397c55"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"dea7d056d1a67d7c175694a3a1397c55","responseTime":6,"status":200,"url":"/callbacks/experiment"} device-1 | {"data":{"peerconnection":"e53bcfc3-f23e-4731-8e37-8b06ec480c08","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"e53bcfc3-f23e-4731-8e37-8b06ec480c08","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/e53bcfc3-f23e-4731-8e37-8b06ec480c08' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e53bcfc3-f23e-4731-8e37-8b06ec480c08","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"26ffc1c43b8dba3152bb019d4d61b556","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748"},{"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/250c921c-16be-4d6d-aa88-75b189bc915a"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/e53bcfc3-f23e-4731-8e37-8b06ec480c08"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:18Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe53bcfc3-f23e-4731-8e37-8b06ec480c08","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"709ca658-ef04-4067-8752-79db15f3bc5a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.2825637} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.45362,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e53bcfc3-f23e-4731-8e37-8b06ec480c08","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/e53bcfc3-f23e-4731-8e37-8b06ec480c08","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":"ce4c9f50-2a6b-11ef-8ad5-3d996a2c698c"},"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/e53bcfc3-f23e-4731-8e37-8b06ec480c08 200 9ms","method":"GET","requestID":"ce4c9f50-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/peerconnections/e53bcfc3-f23e-4731-8e37-8b06ec480c08"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 33ms","method":"POST","requestID":"26ffc1c43b8dba3152bb019d4d61b556","responseTime":33,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.035","http_referrer":"","http_user_agent":"node-fetch","requestID":"26ffc1c43b8dba3152bb019d4d61b556"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5OH0.ZRdrti3pRF8G44NTBqyZXv0xkcrWeLNtJ0eaSEtu_oI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4dd2319e30e455fcf20489e27941acb7","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ae408993-9465-49ce-bab3-230ae64ef94f"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:18Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.638648,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382798,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5OH0.ZRdrti3pRF8G44NTBqyZXv0xkcrWeLNtJ0eaSEtu_oI"} 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":"4dd2319e30e455fcf20489e27941acb7"},"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/ae408993-9465-49ce-bab3-230ae64ef94f"} gateway-1 | {"time_local":"14/Jun/2024:16:33:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ae408993-9465-49ce-bab3-230ae64ef94f HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4dd2319e30e455fcf20489e27941acb7"} experiment-1 | {"level":"info","message":"GET /experiments/ae408993-9465-49ce-bab3-230ae64ef94f 200 9ms","method":"GET","requestID":"4dd2319e30e455fcf20489e27941acb7","responseTime":9,"status":200,"url":"/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5OH0.ZRdrti3pRF8G44NTBqyZXv0xkcrWeLNtJ0eaSEtu_oI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"60e1838c57aba27a7a3d9498d9694188","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ae408993-9465-49ce-bab3-230ae64ef94f"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:18Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.736159,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:18Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382798,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5OH0.ZRdrti3pRF8G44NTBqyZXv0xkcrWeLNtJ0eaSEtu_oI"} 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":"60e1838c57aba27a7a3d9498d9694188"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:18Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.938004,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:18Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e53bcfc3-f23e-4731-8e37-8b06ec480c08","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/e53bcfc3-f23e-4731-8e37-8b06ec480c08","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382798,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5OH0.ZRdrti3pRF8G44NTBqyZXv0xkcrWeLNtJ0eaSEtu_oI"} 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":"ce5e79a0-2a6b-11ef-8ad5-3d996a2c698c"},"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/e53bcfc3-f23e-4731-8e37-8b06ec480c08' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/e53bcfc3-f23e-4731-8e37-8b06ec480c08' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e53bcfc3-f23e-4731-8e37-8b06ec480c08","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe53bcfc3-f23e-4731-8e37-8b06ec480c08': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe53bcfc3-f23e-4731-8e37-8b06ec480c08","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"35a83817-0873-462c-9846-a4251413b3ab","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.4125643} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ea17d5e76169343c60c2d8918c05da54","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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"140a8f82-f5c4-4d8e-871c-a70cbcf6bd12","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.4129925} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/2a3eeb67-2235-45cf-806a-179a5ef92748"},{"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/250c921c-16be-4d6d-aa88-75b189bc915a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e53bcfc3-f23e-4731-8e37-8b06ec480c08"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"e60e72100ee8c8113d415b61591da491","responseTime":0,"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":"ce5e79a0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","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/2a3eeb67-2235-45cf-806a-179a5ef92748"},{"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/250c921c-16be-4d6d-aa88-75b189bc915a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e53bcfc3-f23e-4731-8e37-8b06ec480c08"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/e53bcfc3-f23e-4731-8e37-8b06ec480c08 204 35ms","method":"DELETE","requestID":"ce5e79a0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":35,"status":204,"url":"/peerconnections/e53bcfc3-f23e-4731-8e37-8b06ec480c08"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/250c921c-16be-4d6d-aa88-75b189bc915a'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fae408993-9465-49ce-bab3-230ae64ef94f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fae408993-9465-49ce-bab3-230ae64ef94f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"d558a096-4da4-42c6-981b-e68bf6096b06","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.4535346} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2af3c5f3-c740-4f11-bd06-e3cca8b37657","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.4537873} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"60e1838c57aba27a7a3d9498d9694188"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ae408993-9465-49ce-bab3-230ae64ef94f"} gateway-1 | {"time_local":"14/Jun/2024:16:33:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ae408993-9465-49ce-bab3-230ae64ef94f HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.122","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"60e1838c57aba27a7a3d9498d9694188"} experiment-1 | {"level":"info","message":"DELETE /experiments/ae408993-9465-49ce-bab3-230ae64ef94f 204 119ms","method":"DELETE","requestID":"60e1838c57aba27a7a3d9498d9694188","responseTime":119,"status":204,"url":"/experiments/ae408993-9465-49ce-bab3-230ae64ef94f"} gateway-1 | {"time_local":"14/Jun/2024:16:33:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1995","request_time":"2.961","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3957465e41924157507353554146d9c5"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.096","http_referrer":"","http_user_agent":"node-fetch","requestID":"ea17d5e76169343c60c2d8918c05da54"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 92ms","method":"POST","requestID":"ea17d5e76169343c60c2d8918c05da54","responseTime":92,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 92ms","method":"POST","requestID":"e60e72100ee8c8113d415b61591da491","responseTime":92,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.097","http_referrer":"","http_user_agent":"node-fetch","requestID":"e60e72100ee8c8113d415b61591da491"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5OH0.ZRdrti3pRF8G44NTBqyZXv0xkcrWeLNtJ0eaSEtu_oI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d2d9f1e680644b0f351cab2ac8d0e069","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:18Z"} gateway-1 | {"time_local":"14/Jun/2024:16:33:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1757","request_time":"1.561","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"56d23255ee1838c645b0834ffc432bba"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.945076,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382798,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5OH0.ZRdrti3pRF8G44NTBqyZXv0xkcrWeLNtJ0eaSEtu_oI"} 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":"d2d9f1e680644b0f351cab2ac8d0e069"},"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/2a3eeb67-2235-45cf-806a-179a5ef92748' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ace0155-c252-45c8-8f50-2f1d6ace154e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1f9373c2-1244-4d1c-9ed0-7e4f9264b415","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.5376916} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d2d9f1e680644b0f351cab2ac8d0e069"},"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/250c921c-16be-4d6d-aa88-75b189bc915a' 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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3e828319-8950-4b78-bcdd-9d033041f22f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.5431626} 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":"d2d9f1e680644b0f351cab2ac8d0e069"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ace0155-c252-45c8-8f50-2f1d6ace154e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"49280711-496f-469c-b406-a17a8ab55484","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.5542614} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cc369267-817d-41cd-8116-8b8714676022","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.554364} 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":"d2d9f1e680644b0f351cab2ac8d0e069"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ace0155-c252-45c8-8f50-2f1d6ace154e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ace0155-c252-45c8-8f50-2f1d6ace154e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:18.554237316Z"}]},"request_id":"9cb4ba6c-f45a-4a44-9a8e-a883705a2cc2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.5586534} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d2d9f1e680644b0f351cab2ac8d0e069"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d2d9f1e680644b0f351cab2ac8d0e069"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"d2d9f1e680644b0f351cab2ac8d0e069","responseTime":50,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5OH0.ZRdrti3pRF8G44NTBqyZXv0xkcrWeLNtJ0eaSEtu_oI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5d07108edb1cfe3afbfb5247388049b8","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:18Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.867715,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382798,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5OH0.ZRdrti3pRF8G44NTBqyZXv0xkcrWeLNtJ0eaSEtu_oI"} 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":"5d07108edb1cfe3afbfb5247388049b8"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"66fce19a-fc1d-4da2-a243-6a33d71c48f2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.59007} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5d07108edb1cfe3afbfb5247388049b8"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"102c355a-b5b4-44ff-ad77-83e76f9e17bb","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.595854} 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":"5d07108edb1cfe3afbfb5247388049b8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"eb39be27-c780-421a-a9aa-e5ce550a8e3c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.6073563} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a491ba7d-c091-40dd-ab9a-54a736af3024","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.6075969} 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":"5d07108edb1cfe3afbfb5247388049b8"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:18.607332798Z"}]},"request_id":"cb57a09f-319b-4456-b5a3-5173f587a379","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382798.6120036} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5d07108edb1cfe3afbfb5247388049b8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5d07108edb1cfe3afbfb5247388049b8"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"5d07108edb1cfe3afbfb5247388049b8","responseTime":47,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5OX0.UMbL7PE9iAjzbCNwvu3KwgIdiM1IQB8VnABQMh7o2s4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"24727654f3771f8657a655742146d24e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.823169,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:19Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382799,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5OX0.UMbL7PE9iAjzbCNwvu3KwgIdiM1IQB8VnABQMh7o2s4"} 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":"24727654f3771f8657a655742146d24e"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:18.607332798Z"}]},"request_id":"1d23b39f-aa0a-4dd2-995b-06ab84f0a8e2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382799.1292455} 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":"24727654f3771f8657a655742146d24e"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f59c234a-ecde-4a63-9266-f92f918a9ec5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382799.1372337} 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":"24727654f3771f8657a655742146d24e"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:18.607332798Z"}]},"request_id":"c8de8615-e6d1-46e2-b82b-124913fca00b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382799.1445982} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"24727654f3771f8657a655742146d24e"},"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/71dc6339-4c6d-4057-8969-10cde449070f 200 34ms","method":"PATCH","requestID":"24727654f3771f8657a655742146d24e","responseTime":34,"status":200,"url":"/devices/71dc6339-4c6d-4057-8969-10cde449070f"} gateway-1 | {"time_local":"14/Jun/2024:16:33:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/71dc6339-4c6d-4057-8969-10cde449070f HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.040","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"24727654f3771f8657a655742146d24e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5OX0.UMbL7PE9iAjzbCNwvu3KwgIdiM1IQB8VnABQMh7o2s4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cc1a48c0ae79a95545bca4bef643ccd1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:19Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650511,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:19Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382799,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4Mjc5OX0.UMbL7PE9iAjzbCNwvu3KwgIdiM1IQB8VnABQMh7o2s4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cc1a48c0ae79a95545bca4bef643ccd1"},"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/71dc6339-4c6d-4057-8969-10cde449070f/websocket 200 16ms","method":"POST","requestID":"cc1a48c0ae79a95545bca4bef643ccd1","responseTime":16,"status":200,"url":"/devices/71dc6339-4c6d-4057-8969-10cde449070f/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:33:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/71dc6339-4c6d-4057-8969-10cde449070f/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":"cc1a48c0ae79a95545bca4bef643ccd1"} device-1 | {"level":"info","message":"device 'http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3a41d0162d6cbacc43bbabf7542451e8","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1ace0155-c252-45c8-8f50-2f1d6ace154e/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3a41d0162d6cbacc43bbabf7542451e8"} device-1 | {"level":"info","message":"OPTIONS /devices/1ace0155-c252-45c8-8f50-2f1d6ace154e/websocket 200 0ms","method":"OPTIONS","requestID":"3a41d0162d6cbacc43bbabf7542451e8","responseTime":0,"status":200,"url":"/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a38c52da43f6410d01a7179268764c6a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.686616,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382800,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a38c52da43f6410d01a7179268764c6a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1ace0155-c252-45c8-8f50-2f1d6ace154e/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":"a38c52da43f6410d01a7179268764c6a"} device-1 | {"level":"info","message":"POST /devices/1ace0155-c252-45c8-8f50-2f1d6ace154e/websocket 200 22ms","method":"POST","requestID":"a38c52da43f6410d01a7179268764c6a","responseTime":22,"status":200,"url":"/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"27ec905c177caea455a756c471549a25","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.69002,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382800,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY"} 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":"27ec905c177caea455a756c471549a25"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ace0155-c252-45c8-8f50-2f1d6ace154e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ace0155-c252-45c8-8f50-2f1d6ace154e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:18.554237316Z"}]},"request_id":"89a82661-d816-4d0b-bd72-ff5c25db0b90","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382800.5964134} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"27ec905c177caea455a756c471549a25"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1ace0155-c252-45c8-8f50-2f1d6ace154e? 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":"27ec905c177caea455a756c471549a25"} device-1 | {"level":"info","message":"GET /devices/1ace0155-c252-45c8-8f50-2f1d6ace154e? 200 13ms","method":"GET","requestID":"27ec905c177caea455a756c471549a25","responseTime":13,"status":200,"url":"/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fba3f2a83db6335baf78c921c5f370ad","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.222372,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382800,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fba3f2a83db6335baf78c921c5f370ad"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:18.607332798Z"}]},"request_id":"6b70a97a-3129-486a-bfc9-0cba340c2cf5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382800.6138752} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fba3f2a83db6335baf78c921c5f370ad"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/71dc6339-4c6d-4057-8969-10cde449070f? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fba3f2a83db6335baf78c921c5f370ad"} device-1 | {"level":"info","message":"GET /devices/71dc6339-4c6d-4057-8969-10cde449070f? 200 13ms","method":"GET","requestID":"fba3f2a83db6335baf78c921c5f370ad","responseTime":13,"status":200,"url":"/devices/71dc6339-4c6d-4057-8969-10cde449070f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"990c49ffb8d99fc95ebedcf5cfaf89e3","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:48592","level":"info","msg":"Received request.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.698147,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382800,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY"} 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":"990c49ffb8d99fc95ebedcf5cfaf89e3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"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:48592","level":"info","msg":"Received request.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.908625,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382800,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cfb779f0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.724157,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382800,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cfb7c810-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ace0155-c252-45c8-8f50-2f1d6ace154e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ace0155-c252-45c8-8f50-2f1d6ace154e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:18.554237316Z"}]},"request_id":"e2e3327b-2c11-4c2c-92a6-66d7d29e7cbd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382800.6647506} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cfb779f0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:18.607332798Z"}]},"request_id":"afc01ae0-4273-470c-b6ab-eeecec20754a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382800.6660058} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cfb7c810-2a6b-11ef-8ad5-3d996a2c698c"},"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/1ace0155-c252-45c8-8f50-2f1d6ace154e? 200 17ms","method":"GET","requestID":"cfb779f0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":17,"status":200,"url":"/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/71dc6339-4c6d-4057-8969-10cde449070f? 200 16ms","method":"GET","requestID":"cfb7c810-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/71dc6339-4c6d-4057-8969-10cde449070f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.773281,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382800,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY"} 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":"cfbfde60-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.966214,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382800,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cfc00570-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ace0155-c252-45c8-8f50-2f1d6ace154e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ace0155-c252-45c8-8f50-2f1d6ace154e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:18.554237316Z"}]},"request_id":"fc7c7273-befb-4794-b23c-580fb398d893","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382800.722159} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cfbfde60-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:18.607332798Z"}]},"request_id":"9369b26a-9b70-4783-9694-f733a99a8cc3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382800.7234607} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cfc00570-2a6b-11ef-8ad5-3d996a2c698c"},"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/1ace0155-c252-45c8-8f50-2f1d6ace154e? 200 19ms","method":"GET","requestID":"cfbfde60-2a6b-11ef-8ad5-3d996a2c698c","responseTime":19,"status":200,"url":"/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/71dc6339-4c6d-4057-8969-10cde449070f? 200 23ms","method":"GET","requestID":"cfc00570-2a6b-11ef-8ad5-3d996a2c698c","responseTime":23,"status":200,"url":"/devices/71dc6339-4c6d-4057-8969-10cde449070f?"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa22d383f-d7d9-4140-ad07-37e236590a01#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa22d383f-d7d9-4140-ad07-37e236590a01","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"5b6c4763-a09c-44d3-8ce0-cf159710c428","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382800.733193} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"06e8f23d-ecdd-44e4-ba80-a2c654b1b80a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382800.7335403} 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":"990c49ffb8d99fc95ebedcf5cfaf89e3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.704422,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cfc3fd10-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 126ms","method":"POST","requestID":"990c49ffb8d99fc95ebedcf5cfaf89e3","responseTime":126,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.130","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"990c49ffb8d99fc95ebedcf5cfaf89e3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8a8db8926e4f7e9e1d37f2407f0631d2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/1ace0155-c252-45c8-8f50-2f1d6ace154e/signaling 200 21ms","method":"POST","requestID":"cfc3fd10-2a6b-11ef-8ad5-3d996a2c698c","responseTime":21,"status":200,"url":"/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.084052,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382800,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8a8db8926e4f7e9e1d37f2407f0631d2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.528333,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cfc7a690-2a6b-11ef-8ad5-3d996a2c698c"},"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/71dc6339-4c6d-4057-8969-10cde449070f/signaling 200 10ms","method":"POST","requestID":"cfc7a690-2a6b-11ef-8ad5-3d996a2c698c","responseTime":10,"status":200,"url":"/devices/71dc6339-4c6d-4057-8969-10cde449070f/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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ace0155-c252-45c8-8f50-2f1d6ace154e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ace0155-c252-45c8-8f50-2f1d6ace154e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:18.554237316Z"}]},"request_id":"80dee728-ad6a-488e-ab23-d395c0487195","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382800.7709696} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"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":"3ebc6701-3e57-490e-a9c6-c1d4f53edce1"},{"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":"7d1a879b-f996-4898-bd7c-4087782a91c3"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"ac72661e-2ee4-4d14-b761-9bf2b7fd5e39"}]},"level":"info","message":"Built pairwise service configurations"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8a8db8926e4f7e9e1d37f2407f0631d2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} 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/1ace0155-c252-45c8-8f50-2f1d6ace154e"},{"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/71dc6339-4c6d-4057-8969-10cde449070f"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1ace0155-c252-45c8-8f50-2f1d6ace154e? 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":"8a8db8926e4f7e9e1d37f2407f0631d2"} device-1 | {"level":"info","message":"GET /devices/1ace0155-c252-45c8-8f50-2f1d6ace154e? 200 18ms","method":"GET","requestID":"8a8db8926e4f7e9e1d37f2407f0631d2","responseTime":18,"status":200,"url":"/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e?"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.798099,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382800,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY"} 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":"cfc9a260-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1f80ca5504345403b210fd5abc1c7539","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.940146,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382800,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMH0.SRzd23qbgGDuQ2IUld9oco3AU4nBHg3CwZqKBSuFoPY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1f80ca5504345403b210fd5abc1c7539"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"682e395f-9cf5-4781-bab5-0b7db026dff1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382800.787457} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bf2e1b58-ff16-4980-8854-715da34dc382","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382800.7876713} 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":"cfc9a260-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F71dc6339-4c6d-4057-8969-10cde449070f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:18.607332798Z"}]},"request_id":"c82bd1bf-110a-4984-a475-9a0476d78403","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382800.7928717} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1f80ca5504345403b210fd5abc1c7539"},"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/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 29ms","method":"POST","requestID":"cfc9a260-2a6b-11ef-8ad5-3d996a2c698c","responseTime":29,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/71dc6339-4c6d-4057-8969-10cde449070f? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1f80ca5504345403b210fd5abc1c7539"} device-1 | {"level":"info","message":"GET /devices/71dc6339-4c6d-4057-8969-10cde449070f? 200 22ms","method":"GET","requestID":"1f80ca5504345403b210fd5abc1c7539","responseTime":22,"status":200,"url":"/devices/71dc6339-4c6d-4057-8969-10cde449070f?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"8de2d0c4d913fa2ae7649543512595a4","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/1ace0155-c252-45c8-8f50-2f1d6ace154e"},{"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/71dc6339-4c6d-4057-8969-10cde449070f"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"8de2d0c4d913fa2ae7649543512595a4","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"8de2d0c4d913fa2ae7649543512595a4"} device-1 | {"data":{"peerconnection":"ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda","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/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bc1e0b5a23d9ed2b07f4c291bd432e20","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/1ace0155-c252-45c8-8f50-2f1d6ace154e"},{"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/71dc6339-4c6d-4057-8969-10cde449070f"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fac6595d8-ffd3-4c8d-a60e-9fe14edc4bda","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a7ba4753-5d39-4a4c-8296-66eefcd809c0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382800.9387093} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.322089,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda","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":"cfe20c60-2a6b-11ef-8ad5-3d996a2c698c"},"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/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda 200 8ms","method":"GET","requestID":"cfe20c60-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/peerconnections/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"bc1e0b5a23d9ed2b07f4c291bd432e20","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"bc1e0b5a23d9ed2b07f4c291bd432e20"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMX0.wUN-cPgQEElueNUGU9L2ihsZ9UQKtbWWcmLaV65U5VI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fcb3f42fd162f0b0d4ecda2d54d4ecf3","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a22d383f-d7d9-4140-ad07-37e236590a01"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.969884,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382801,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMX0.wUN-cPgQEElueNUGU9L2ihsZ9UQKtbWWcmLaV65U5VI"} 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":"fcb3f42fd162f0b0d4ecda2d54d4ecf3"},"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/a22d383f-d7d9-4140-ad07-37e236590a01"} gateway-1 | {"time_local":"14/Jun/2024:16:33:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a22d383f-d7d9-4140-ad07-37e236590a01 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fcb3f42fd162f0b0d4ecda2d54d4ecf3"} experiment-1 | {"level":"info","message":"GET /experiments/a22d383f-d7d9-4140-ad07-37e236590a01 200 12ms","method":"GET","requestID":"fcb3f42fd162f0b0d4ecda2d54d4ecf3","responseTime":12,"status":200,"url":"/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMX0.wUN-cPgQEElueNUGU9L2ihsZ9UQKtbWWcmLaV65U5VI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"04a168fe1636a458c970c5bd9c164225","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/a22d383f-d7d9-4140-ad07-37e236590a01"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.623206,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:21Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382801,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMX0.wUN-cPgQEElueNUGU9L2ihsZ9UQKtbWWcmLaV65U5VI"} 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":"04a168fe1636a458c970c5bd9c164225"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.674151,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:21Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382801,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMX0.wUN-cPgQEElueNUGU9L2ihsZ9UQKtbWWcmLaV65U5VI"} 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":"cff3e6b0-2a6b-11ef-8ad5-3d996a2c698c"},"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/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ca75c4b724e28e783f11519e654b5ee4","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/1ace0155-c252-45c8-8f50-2f1d6ace154e"},{"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/71dc6339-4c6d-4057-8969-10cde449070f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"47c58cfa7daac2c98f3592f7a4421d25","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fac6595d8-ffd3-4c8d-a60e-9fe14edc4bda': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fac6595d8-ffd3-4c8d-a60e-9fe14edc4bda","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"270683fe-fe91-4f3b-b25a-a6d3cfb6eb24","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.069871} 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/1ace0155-c252-45c8-8f50-2f1d6ace154e"},{"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/71dc6339-4c6d-4057-8969-10cde449070f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda"}}},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2d254167-6979-4ff7-84fd-bf75f3b4a24a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.0700924} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cff3e6b0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"data":{"peerconnection":"ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda","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/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda 204 34ms","method":"DELETE","requestID":"cff3e6b0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":34,"status":204,"url":"/peerconnections/ac6595d8-ffd3-4c8d-a60e-9fe14edc4bda"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa22d383f-d7d9-4140-ad07-37e236590a01': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa22d383f-d7d9-4140-ad07-37e236590a01","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"f1186bbd-ec43-430c-86e8-0f7778cfd4a0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.1110013} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"af066804-effa-4a2a-91d8-3083d0bc73b2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.1112635} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"04a168fe1636a458c970c5bd9c164225"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/a22d383f-d7d9-4140-ad07-37e236590a01"} gateway-1 | {"time_local":"14/Jun/2024:16:33:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/a22d383f-d7d9-4140-ad07-37e236590a01 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.123","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"04a168fe1636a458c970c5bd9c164225"} gateway-1 | {"time_local":"14/Jun/2024:16:33:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1678","request_time":"1.991","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"c8f5c585838457cfea3ce8f0d48c750e"} experiment-1 | {"level":"info","message":"DELETE /experiments/a22d383f-d7d9-4140-ad07-37e236590a01 204 120ms","method":"DELETE","requestID":"04a168fe1636a458c970c5bd9c164225","responseTime":120,"status":204,"url":"/experiments/a22d383f-d7d9-4140-ad07-37e236590a01"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 97ms","method":"POST","requestID":"ca75c4b724e28e783f11519e654b5ee4","responseTime":97,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.101","http_referrer":"","http_user_agent":"node-fetch","requestID":"ca75c4b724e28e783f11519e654b5ee4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 97ms","method":"POST","requestID":"47c58cfa7daac2c98f3592f7a4421d25","responseTime":97,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.102","http_referrer":"","http_user_agent":"node-fetch","requestID":"47c58cfa7daac2c98f3592f7a4421d25"} gateway-1 | {"time_local":"14/Jun/2024:16:33:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1762","request_time":"0.600","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3e4e1e58ae01d6f5ae9144aa683b890d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMX0.wUN-cPgQEElueNUGU9L2ihsZ9UQKtbWWcmLaV65U5VI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"7beec404d139326ebb86891f369e4e50","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:21Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/71dc6339-4c6d-4057-8969-10cde449070f' closed"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.840268,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382801,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMX0.wUN-cPgQEElueNUGU9L2ihsZ9UQKtbWWcmLaV65U5VI"} 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":"7beec404d139326ebb86891f369e4e50"},"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/1ace0155-c252-45c8-8f50-2f1d6ace154e' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3fd64a41-8a4e-45b6-bff1-36eda293a8ff","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.197492} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7beec404d139326ebb86891f369e4e50"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"39625d8f-29d4-497e-b946-bf88bb7acdfb","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.2030807} 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":"7beec404d139326ebb86891f369e4e50"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"41dd5616-56ef-4b5a-bdf1-3d56877aa3a2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.2122893} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9e421561-72ba-415f-b31b-b4097bf7b32d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.2125242} 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":"7beec404d139326ebb86891f369e4e50"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:21.212270570Z"}]},"request_id":"21ed53b0-bf3a-4bc8-b493-f985ce305c61","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.2170858} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7beec404d139326ebb86891f369e4e50"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7beec404d139326ebb86891f369e4e50"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"7beec404d139326ebb86891f369e4e50","responseTime":45,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMX0.wUN-cPgQEElueNUGU9L2ihsZ9UQKtbWWcmLaV65U5VI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f96989fe74fa7c5ed2cec5d8e4f549b4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.71063,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382801,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMX0.wUN-cPgQEElueNUGU9L2ihsZ9UQKtbWWcmLaV65U5VI"} 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":"f96989fe74fa7c5ed2cec5d8e4f549b4"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F959016f3-5829-4fcb-82c0-74e4219b45b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e624de9e-7eef-4612-a8b6-eb75a8c21f2f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.2413948} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f96989fe74fa7c5ed2cec5d8e4f549b4"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4213b811-a92c-4a03-9e9e-5521fa0de9e3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.2465427} 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":"f96989fe74fa7c5ed2cec5d8e4f549b4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F959016f3-5829-4fcb-82c0-74e4219b45b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"5893d179-d2b8-4f3d-9d3d-e912c8744f81","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.2624333} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a2f87ea5-2b6c-4104-83e7-8bcf4951070a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.2624862} 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":"f96989fe74fa7c5ed2cec5d8e4f549b4"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F959016f3-5829-4fcb-82c0-74e4219b45b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F959016f3-5829-4fcb-82c0-74e4219b45b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:21.262413565Z"}]},"request_id":"f97fdf62-2fdc-4978-964a-1c7688473c37","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.2674775} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f96989fe74fa7c5ed2cec5d8e4f549b4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f96989fe74fa7c5ed2cec5d8e4f549b4"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"f96989fe74fa7c5ed2cec5d8e4f549b4","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMX0.wUN-cPgQEElueNUGU9L2ihsZ9UQKtbWWcmLaV65U5VI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2118cf3facf2fef0fb149ebd35cb1caa","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.702067,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382801,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMX0.wUN-cPgQEElueNUGU9L2ihsZ9UQKtbWWcmLaV65U5VI"} 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":"2118cf3facf2fef0fb149ebd35cb1caa"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:21.212270570Z"}]},"request_id":"c847395b-38ff-4005-946a-0d49ef519850","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.765322} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2118cf3facf2fef0fb149ebd35cb1caa"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ef180aec-0743-4208-a48b-983d7ff86d3a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.7703602} 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":"2118cf3facf2fef0fb149ebd35cb1caa"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:21.212270570Z"}]},"request_id":"7807642d-cbc2-4b2c-96ce-98eab2dde8c1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382801.781973} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2118cf3facf2fef0fb149ebd35cb1caa"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.034","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"2118cf3facf2fef0fb149ebd35cb1caa"} device-1 | {"level":"info","message":"PATCH /devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750 200 30ms","method":"PATCH","requestID":"2118cf3facf2fef0fb149ebd35cb1caa","responseTime":30,"status":200,"url":"/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMX0.wUN-cPgQEElueNUGU9L2ihsZ9UQKtbWWcmLaV65U5VI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c6d64953c7418227e8d4451bd911bc30","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:21Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.23308,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382801,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwMX0.wUN-cPgQEElueNUGU9L2ihsZ9UQKtbWWcmLaV65U5VI"} 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":"c6d64953c7418227e8d4451bd911bc30"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750/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":"c6d64953c7418227e8d4451bd911bc30"} device-1 | {"level":"info","message":"POST /devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750/websocket 200 16ms","method":"POST","requestID":"c6d64953c7418227e8d4451bd911bc30","responseTime":16,"status":200,"url":"/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f7d876d17f2597fe9c866b992589beda","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/959016f3-5829-4fcb-82c0-74e4219b45b9/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f7d876d17f2597fe9c866b992589beda"} device-1 | {"level":"info","message":"OPTIONS /devices/959016f3-5829-4fcb-82c0-74e4219b45b9/websocket 200 0ms","method":"OPTIONS","requestID":"f7d876d17f2597fe9c866b992589beda","responseTime":0,"status":200,"url":"/devices/959016f3-5829-4fcb-82c0-74e4219b45b9/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"881d0fa9e334019776a672c8a92d4897","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.699126,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/959016f3-5829-4fcb-82c0-74e4219b45b9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/959016f3-5829-4fcb-82c0-74e4219b45b9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382803,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4"} 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":"881d0fa9e334019776a672c8a92d4897"},"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/959016f3-5829-4fcb-82c0-74e4219b45b9/websocket 200 17ms","method":"POST","requestID":"881d0fa9e334019776a672c8a92d4897","responseTime":17,"status":200,"url":"/devices/959016f3-5829-4fcb-82c0-74e4219b45b9/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:33:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/959016f3-5829-4fcb-82c0-74e4219b45b9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.020","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"881d0fa9e334019776a672c8a92d4897"} device-1 | {"level":"info","message":"device 'http://localhost/devices/959016f3-5829-4fcb-82c0-74e4219b45b9' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"906744e1068c574080bc7af6d8418740","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.750237,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382803,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4"} 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":"906744e1068c574080bc7af6d8418740"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:21.212270570Z"}]},"request_id":"81ade04b-d053-4e92-89dd-801e52e851a4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382803.2671506} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"906744e1068c574080bc7af6d8418740"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"906744e1068c574080bc7af6d8418740"} device-1 | {"level":"info","message":"GET /devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750? 200 11ms","method":"GET","requestID":"906744e1068c574080bc7af6d8418740","responseTime":11,"status":200,"url":"/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"30c195908e2bae9d14c7fbbcc55b8931","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.642847,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/959016f3-5829-4fcb-82c0-74e4219b45b9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/959016f3-5829-4fcb-82c0-74e4219b45b9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382803,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4"} 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":"30c195908e2bae9d14c7fbbcc55b8931"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F959016f3-5829-4fcb-82c0-74e4219b45b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F959016f3-5829-4fcb-82c0-74e4219b45b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:21.262413565Z"}]},"request_id":"258205c6-05a0-426d-b4e8-d02a52435f3e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382803.2833643} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30c195908e2bae9d14c7fbbcc55b8931"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/959016f3-5829-4fcb-82c0-74e4219b45b9? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"30c195908e2bae9d14c7fbbcc55b8931"} device-1 | {"level":"info","message":"GET /devices/959016f3-5829-4fcb-82c0-74e4219b45b9? 200 12ms","method":"GET","requestID":"30c195908e2bae9d14c7fbbcc55b8931","responseTime":12,"status":200,"url":"/devices/959016f3-5829-4fcb-82c0-74e4219b45b9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"99c5cde9b6574223042150698b9b1b86","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:48592","level":"info","msg":"Received request.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.716823,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382803,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4"} 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":"99c5cde9b6574223042150698b9b1b86"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"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:48592","level":"info","msg":"Received request.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.673769,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382803,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d14f7f10-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.878994,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/959016f3-5829-4fcb-82c0-74e4219b45b9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/959016f3-5829-4fcb-82c0-74e4219b45b9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382803,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4"} 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":"d14fa620-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:21.212270570Z"}]},"request_id":"62b84dd0-5795-46b2-979f-9394b38ce44c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382803.338746} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d14f7f10-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F959016f3-5829-4fcb-82c0-74e4219b45b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F959016f3-5829-4fcb-82c0-74e4219b45b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:21.262413565Z"}]},"request_id":"83cc3dbb-3ccf-4376-bee7-e9fd9c69c286","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382803.33956} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d14fa620-2a6b-11ef-8ad5-3d996a2c698c"},"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/4b06bdfa-af3b-4af2-87c7-82ed3be6f750? 200 15ms","method":"GET","requestID":"d14f7f10-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/959016f3-5829-4fcb-82c0-74e4219b45b9? 200 15ms","method":"GET","requestID":"d14fa620-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/959016f3-5829-4fcb-82c0-74e4219b45b9?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"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/0e228405-6f57-4284-9a83-f62048b39809"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.733099,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382803,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d1591c00-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.782369,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/959016f3-5829-4fcb-82c0-74e4219b45b9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/959016f3-5829-4fcb-82c0-74e4219b45b9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382803,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d1596a20-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:21.212270570Z"}]},"request_id":"7709c214-e5fe-43d1-a740-09a66e202408","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382803.404595} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d1591c00-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F959016f3-5829-4fcb-82c0-74e4219b45b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F959016f3-5829-4fcb-82c0-74e4219b45b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:21.262413565Z"}]},"request_id":"1539c3c9-690c-4642-954a-2d143464f6be","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382803.405519} device-1 | {"level":"info","message":"getDevicesByDeviceId 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":"d1596a20-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"GET /devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750? 200 18ms","method":"GET","requestID":"d1591c00-2a6b-11ef-8ad5-3d996a2c698c","responseTime":18,"status":200,"url":"/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/959016f3-5829-4fcb-82c0-74e4219b45b9? 200 19ms","method":"GET","requestID":"d1596a20-2a6b-11ef-8ad5-3d996a2c698c","responseTime":19,"status":200,"url":"/devices/959016f3-5829-4fcb-82c0-74e4219b45b9?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.768543,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d15c9e70-2a6b-11ef-8ad5-3d996a2c698c"},"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/4b06bdfa-af3b-4af2-87c7-82ed3be6f750/signaling 200 8ms","method":"POST","requestID":"d15c9e70-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750/signaling"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0e228405-6f57-4284-9a83-f62048b39809#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0e228405-6f57-4284-9a83-f62048b39809","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"c5d3e7b0-2dce-4f88-bb64-84d3d4c49642","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382803.4255273} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"71e9b4a9-74ee-4b67-90f1-e16095c3e2c2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382803.4258127} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 26ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"99c5cde9b6574223042150698b9b1b86"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":26}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.943157,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/959016f3-5829-4fcb-82c0-74e4219b45b9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/959016f3-5829-4fcb-82c0-74e4219b45b9","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d15e4c20-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.145","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"99c5cde9b6574223042150698b9b1b86"} experiment-1 | {"level":"info","message":"POST /experiments? 201 141ms","method":"POST","requestID":"99c5cde9b6574223042150698b9b1b86","responseTime":141,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"POST /devices/959016f3-5829-4fcb-82c0-74e4219b45b9/signaling 200 8ms","method":"POST","requestID":"d15e4c20-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/devices/959016f3-5829-4fcb-82c0-74e4219b45b9/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"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":"34116246-b43a-4a91-884d-660c6130f559"},{"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":"b54d294a-cac8-4d4f-88e8-d5bfbfacd5f7"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"c819e41c-f26f-4375-a688-f71c5479deb7"}]},"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/4b06bdfa-af3b-4af2-87c7-82ed3be6f750"},{"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/959016f3-5829-4fcb-82c0-74e4219b45b9"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"14ff9301b79ae0adeac613f53118eb1f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.930624,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382803,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4"} 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":"d15ff9d0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.02598,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382803,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4"} 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":"14ff9301b79ae0adeac613f53118eb1f"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b06bdfa-af3b-4af2-87c7-82ed3be6f750","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:21.212270570Z"}]},"request_id":"073847fa-e484-4ebe-971b-f2ee1b85cf3f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382803.4501657} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"14ff9301b79ae0adeac613f53118eb1f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"80caecd0-7357-4e97-928c-8a70d5f7daa8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382803.4544} gateway-1 | {"time_local":"14/Jun/2024:16:33:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"14ff9301b79ae0adeac613f53118eb1f"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d596a52b-41c6-4e06-abb2-703e15a4dbbd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382803.4547765} device-1 | {"level":"info","message":"GET /devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750? 200 15ms","method":"GET","requestID":"14ff9301b79ae0adeac613f53118eb1f","responseTime":15,"status":200,"url":"/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750?"} 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":"d15ff9d0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1911ad6f14dbf7be998d360a4077b4fb","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.708292,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/959016f3-5829-4fcb-82c0-74e4219b45b9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/959016f3-5829-4fcb-82c0-74e4219b45b9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382803,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwM30.EUSOLp531mqaGdLF3G-IgQqNF1WE2_7UzAMS0E97uJ4"} 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":"1911ad6f14dbf7be998d360a4077b4fb"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"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/35401786-b220-4dff-aca9-224f25904f7c'"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F959016f3-5829-4fcb-82c0-74e4219b45b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F959016f3-5829-4fcb-82c0-74e4219b45b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:21.262413565Z"}]},"request_id":"e638f1c5-ee29-4c27-b591-3021f5e95bc7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382803.469796} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/35401786-b220-4dff-aca9-224f25904f7c'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1911ad6f14dbf7be998d360a4077b4fb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 34ms","method":"POST","requestID":"d15ff9d0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":34,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/959016f3-5829-4fcb-82c0-74e4219b45b9? 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":"1911ad6f14dbf7be998d360a4077b4fb"} device-1 | {"level":"info","message":"GET /devices/959016f3-5829-4fcb-82c0-74e4219b45b9? 200 16ms","method":"GET","requestID":"1911ad6f14dbf7be998d360a4077b4fb","responseTime":16,"status":200,"url":"/devices/959016f3-5829-4fcb-82c0-74e4219b45b9?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"data":{"peerconnection":"35401786-b220-4dff-aca9-224f25904f7c","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/35401786-b220-4dff-aca9-224f25904f7c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"35401786-b220-4dff-aca9-224f25904f7c","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"20dc10968929320d7a63e1b1322c68d1","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/4b06bdfa-af3b-4af2-87c7-82ed3be6f750"},{"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/959016f3-5829-4fcb-82c0-74e4219b45b9"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/35401786-b220-4dff-aca9-224f25904f7c"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"20dc10968929320d7a63e1b1322c68d1","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"20dc10968929320d7a63e1b1322c68d1"} device-1 | {"data":{"peerconnection":"35401786-b220-4dff-aca9-224f25904f7c","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"35401786-b220-4dff-aca9-224f25904f7c","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/35401786-b220-4dff-aca9-224f25904f7c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"35401786-b220-4dff-aca9-224f25904f7c","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"156bc7857bfbc8e6e3752cc18b590524","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/4b06bdfa-af3b-4af2-87c7-82ed3be6f750"},{"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/959016f3-5829-4fcb-82c0-74e4219b45b9"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/35401786-b220-4dff-aca9-224f25904f7c"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:24Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F35401786-b220-4dff-aca9-224f25904f7c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"01f1887f-3620-4084-a3f3-673ebbca3e22","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.6243262} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.268702,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/35401786-b220-4dff-aca9-224f25904f7c","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/35401786-b220-4dff-aca9-224f25904f7c","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":"d21455b0-2a6b-11ef-8ad5-3d996a2c698c"},"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/35401786-b220-4dff-aca9-224f25904f7c 200 10ms","method":"GET","requestID":"d21455b0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":10,"status":200,"url":"/peerconnections/35401786-b220-4dff-aca9-224f25904f7c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"156bc7857bfbc8e6e3752cc18b590524","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.030","http_referrer":"","http_user_agent":"node-fetch","requestID":"156bc7857bfbc8e6e3752cc18b590524"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNH0.RL3OG3s0Z8w--ztqaPvQ0vljdEA53Dw-bgmUyuZNQC4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"05ea5edc3a7b9017eb268bde42f0d2be","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/0e228405-6f57-4284-9a83-f62048b39809"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.739425,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382804,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNH0.RL3OG3s0Z8w--ztqaPvQ0vljdEA53Dw-bgmUyuZNQC4"} 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":"05ea5edc3a7b9017eb268bde42f0d2be"},"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/0e228405-6f57-4284-9a83-f62048b39809"} gateway-1 | {"time_local":"14/Jun/2024:16:33:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/0e228405-6f57-4284-9a83-f62048b39809 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"05ea5edc3a7b9017eb268bde42f0d2be"} experiment-1 | {"level":"info","message":"GET /experiments/0e228405-6f57-4284-9a83-f62048b39809 200 11ms","method":"GET","requestID":"05ea5edc3a7b9017eb268bde42f0d2be","responseTime":11,"status":200,"url":"/experiments/0e228405-6f57-4284-9a83-f62048b39809"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNH0.RL3OG3s0Z8w--ztqaPvQ0vljdEA53Dw-bgmUyuZNQC4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"812f47e49a399499bcfffb1ba931dbde","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/0e228405-6f57-4284-9a83-f62048b39809"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.938021,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:24Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382804,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNH0.RL3OG3s0Z8w--ztqaPvQ0vljdEA53Dw-bgmUyuZNQC4"} 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":"812f47e49a399499bcfffb1ba931dbde"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.713162,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:24Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/35401786-b220-4dff-aca9-224f25904f7c","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/35401786-b220-4dff-aca9-224f25904f7c","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382804,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNH0.RL3OG3s0Z8w--ztqaPvQ0vljdEA53Dw-bgmUyuZNQC4"} 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":"d2245b40-2a6b-11ef-8ad5-3d996a2c698c"},"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/35401786-b220-4dff-aca9-224f25904f7c' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/35401786-b220-4dff-aca9-224f25904f7c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"35401786-b220-4dff-aca9-224f25904f7c","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c961ae8dcde918fa3cd8250f9e6b8542","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F35401786-b220-4dff-aca9-224f25904f7c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F35401786-b220-4dff-aca9-224f25904f7c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"8736e1b2-857e-4bfa-a366-aef4d4659c3b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.7408047} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750"},{"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/959016f3-5829-4fcb-82c0-74e4219b45b9"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/35401786-b220-4dff-aca9-224f25904f7c"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1a95b8f35d3f7e68fc37d0c75819696c","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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e1207caf-3632-492f-a61b-d9926a101a00","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.74108} 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/4b06bdfa-af3b-4af2-87c7-82ed3be6f750"},{"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/959016f3-5829-4fcb-82c0-74e4219b45b9"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/35401786-b220-4dff-aca9-224f25904f7c"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d2245b40-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/35401786-b220-4dff-aca9-224f25904f7c 204 37ms","method":"DELETE","requestID":"d2245b40-2a6b-11ef-8ad5-3d996a2c698c","responseTime":37,"status":204,"url":"/peerconnections/35401786-b220-4dff-aca9-224f25904f7c"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/959016f3-5829-4fcb-82c0-74e4219b45b9'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0e228405-6f57-4284-9a83-f62048b39809"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0e228405-6f57-4284-9a83-f62048b39809': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0e228405-6f57-4284-9a83-f62048b39809","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"a9251728-f371-4a26-899c-c8427220a055","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.7910278} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"85a1f3df-3946-4773-b162-66198e839267","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.7911701} 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":"812f47e49a399499bcfffb1ba931dbde"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/0e228405-6f57-4284-9a83-f62048b39809"} gateway-1 | {"time_local":"14/Jun/2024:16:33:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/0e228405-6f57-4284-9a83-f62048b39809 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.141","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"812f47e49a399499bcfffb1ba931dbde"} experiment-1 | {"level":"info","message":"DELETE /experiments/0e228405-6f57-4284-9a83-f62048b39809 204 138ms","method":"DELETE","requestID":"812f47e49a399499bcfffb1ba931dbde","responseTime":138,"status":204,"url":"/experiments/0e228405-6f57-4284-9a83-f62048b39809"} gateway-1 | {"time_local":"14/Jun/2024:16:33:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1998","request_time":"3.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b7dc9676dfdde65e0a0fa5e51f58b503"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 113ms","method":"POST","requestID":"c961ae8dcde918fa3cd8250f9e6b8542","responseTime":113,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.116","http_referrer":"","http_user_agent":"node-fetch","requestID":"c961ae8dcde918fa3cd8250f9e6b8542"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.117","http_referrer":"","http_user_agent":"node-fetch","requestID":"1a95b8f35d3f7e68fc37d0c75819696c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNH0.RL3OG3s0Z8w--ztqaPvQ0vljdEA53Dw-bgmUyuZNQC4","level":"info","message":"auth send jwt"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 113ms","method":"POST","requestID":"1a95b8f35d3f7e68fc37d0c75819696c","responseTime":113,"status":200,"url":"/callbacks/experiment"} device-1 | {"level":"info","message":"postDevices called"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0a760956e976e9c6e6c9a1c3609a149e","responseTime":4,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1755","request_time":"1.622","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f78cb42033c2657eb7412e79ff3b5925"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4b06bdfa-af3b-4af2-87c7-82ed3be6f750' closed"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.920027,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382804,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNH0.RL3OG3s0Z8w--ztqaPvQ0vljdEA53Dw-bgmUyuZNQC4"} 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":"0a760956e976e9c6e6c9a1c3609a149e"},"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/959016f3-5829-4fcb-82c0-74e4219b45b9' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"98565cb1-db3b-4b19-97c4-9915609e3753","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.894239} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0a760956e976e9c6e6c9a1c3609a149e"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b2d8654c-54b4-4215-8c4c-c349ada4b9c2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.8997192} 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":"0a760956e976e9c6e6c9a1c3609a149e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"425128b4-9e02-45bd-bc0d-ca990f6b4861","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.9106834} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a09815f3-a07f-4521-962d-924f7a1aec9e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.9108217} 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":"0a760956e976e9c6e6c9a1c3609a149e"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:24.910662802Z"}]},"request_id":"c12cebc7-be85-46d6-9af9-e5dcb4033815","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.915965} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0a760956e976e9c6e6c9a1c3609a149e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.065","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0a760956e976e9c6e6c9a1c3609a149e"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"0a760956e976e9c6e6c9a1c3609a149e","responseTime":59,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNH0.RL3OG3s0Z8w--ztqaPvQ0vljdEA53Dw-bgmUyuZNQC4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f2208d6335c931cd328b75d5001097f3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:24Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.799484,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382804,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNH0.RL3OG3s0Z8w--ztqaPvQ0vljdEA53Dw-bgmUyuZNQC4"} 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":"f2208d6335c931cd328b75d5001097f3"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7570d6a4-71d8-4fbc-a775-5f27978cb6ba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"400ff5ef-7ee8-4708-9474-ed890667b248","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.940458} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2208d6335c931cd328b75d5001097f3"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"54c74413-ee6d-41a2-af22-07d51b60ad6d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.9456167} 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":"f2208d6335c931cd328b75d5001097f3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7570d6a4-71d8-4fbc-a775-5f27978cb6ba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"9c89df8f-daeb-4863-a806-f856e27f0a37","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.9554195} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a8f0657f-8a1c-47c2-8705-43f4b8e0908c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.9557524} 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":"f2208d6335c931cd328b75d5001097f3"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7570d6a4-71d8-4fbc-a775-5f27978cb6ba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7570d6a4-71d8-4fbc-a775-5f27978cb6ba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:24.955398973Z"}]},"request_id":"c423f2bc-59cd-4177-8f31-f0c68449e709","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382804.9604146} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f2208d6335c931cd328b75d5001097f3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"f2208d6335c931cd328b75d5001097f3","responseTime":38,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f2208d6335c931cd328b75d5001097f3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNX0.Soxtd01p2qNC66xQ1J23nwSrsh_9LdkkX9T2_S2jU44","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8e697fcd9f1a324b9b10f55f6765c283","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:25Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.712433,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382805,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNX0.Soxtd01p2qNC66xQ1J23nwSrsh_9LdkkX9T2_S2jU44"} 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":"8e697fcd9f1a324b9b10f55f6765c283"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:24.910662802Z"}]},"request_id":"33b15314-12dd-4d25-a288-5e902cf4c89a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382805.4731843} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8e697fcd9f1a324b9b10f55f6765c283"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b9dfb8ce-de2b-4835-a386-dd45a1f4feb0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382805.4781992} 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":"8e697fcd9f1a324b9b10f55f6765c283"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:24.910662802Z"}]},"request_id":"14ad286d-bb74-426d-af43-dd0ff5be1cb3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382805.49} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8e697fcd9f1a324b9b10f55f6765c283"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/61c13310-1713-453c-98b7-bbfbf431e22d HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.034","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"8e697fcd9f1a324b9b10f55f6765c283"} device-1 | {"level":"info","message":"PATCH /devices/61c13310-1713-453c-98b7-bbfbf431e22d 200 29ms","method":"PATCH","requestID":"8e697fcd9f1a324b9b10f55f6765c283","responseTime":29,"status":200,"url":"/devices/61c13310-1713-453c-98b7-bbfbf431e22d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNX0.Soxtd01p2qNC66xQ1J23nwSrsh_9LdkkX9T2_S2jU44","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d5d91cb7645725128c1ac0501a66c176","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:25Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.713177,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382805,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNX0.Soxtd01p2qNC66xQ1J23nwSrsh_9LdkkX9T2_S2jU44"} 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":"d5d91cb7645725128c1ac0501a66c176"},"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/61c13310-1713-453c-98b7-bbfbf431e22d/websocket 200 16ms","method":"POST","requestID":"d5d91cb7645725128c1ac0501a66c176","responseTime":16,"status":200,"url":"/devices/61c13310-1713-453c-98b7-bbfbf431e22d/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:33:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/61c13310-1713-453c-98b7-bbfbf431e22d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.020","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d5d91cb7645725128c1ac0501a66c176"} device-1 | {"level":"info","message":"device 'http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f5fbc5ef89a8e81f10294189337107d3","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba/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":"f5fbc5ef89a8e81f10294189337107d3"} device-1 | {"level":"info","message":"OPTIONS /devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba/websocket 200 1ms","method":"OPTIONS","requestID":"f5fbc5ef89a8e81f10294189337107d3","responseTime":1,"status":200,"url":"/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNn0.yt4eKXMaw3wMg0vHITDdhJ1RI5xYal-qhdn997zwh-M","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d565a7217100e22a79767719ce60a793","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:26Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.71121,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382806,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNn0.yt4eKXMaw3wMg0vHITDdhJ1RI5xYal-qhdn997zwh-M"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d565a7217100e22a79767719ce60a793"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.023","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d565a7217100e22a79767719ce60a793"} device-1 | {"level":"info","message":"POST /devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba/websocket 200 19ms","method":"POST","requestID":"d565a7217100e22a79767719ce60a793","responseTime":19,"status":200,"url":"/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNn0.yt4eKXMaw3wMg0vHITDdhJ1RI5xYal-qhdn997zwh-M","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0e563e551676a7ec6addb08d21b748cc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:26Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.89309,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382806,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNn0.yt4eKXMaw3wMg0vHITDdhJ1RI5xYal-qhdn997zwh-M"} 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":"0e563e551676a7ec6addb08d21b748cc"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:24.910662802Z"}]},"request_id":"e38b7957-558d-408d-9fc4-9234717146c4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382806.957927} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0e563e551676a7ec6addb08d21b748cc"},"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/61c13310-1713-453c-98b7-bbfbf431e22d? 200 12ms","method":"GET","requestID":"0e563e551676a7ec6addb08d21b748cc","responseTime":12,"status":200,"url":"/devices/61c13310-1713-453c-98b7-bbfbf431e22d?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/61c13310-1713-453c-98b7-bbfbf431e22d? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0e563e551676a7ec6addb08d21b748cc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNn0.yt4eKXMaw3wMg0vHITDdhJ1RI5xYal-qhdn997zwh-M","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c1e4984379acfbce4f351974bd966b0b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:26Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.670375,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382806,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNn0.yt4eKXMaw3wMg0vHITDdhJ1RI5xYal-qhdn997zwh-M"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c1e4984379acfbce4f351974bd966b0b"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7570d6a4-71d8-4fbc-a775-5f27978cb6ba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7570d6a4-71d8-4fbc-a775-5f27978cb6ba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:24.955398973Z"}]},"request_id":"b55d983e-537d-4dbc-9557-47ec89e42228","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382806.9770358} 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":"c1e4984379acfbce4f351974bd966b0b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c1e4984379acfbce4f351974bd966b0b"} device-1 | {"level":"info","message":"GET /devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba? 200 13ms","method":"GET","requestID":"c1e4984379acfbce4f351974bd966b0b","responseTime":13,"status":200,"url":"/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNn0.yt4eKXMaw3wMg0vHITDdhJ1RI5xYal-qhdn997zwh-M","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d6876497157b2d422e4a806c050a96f1","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:48592","level":"info","msg":"Received request.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:26Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.67967,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382806,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNn0.yt4eKXMaw3wMg0vHITDdhJ1RI5xYal-qhdn997zwh-M"} 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":"d6876497157b2d422e4a806c050a96f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"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:48592","level":"info","msg":"Received request.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.904728,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382806,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNn0.yt4eKXMaw3wMg0vHITDdhJ1RI5xYal-qhdn997zwh-M"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d381ef70-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.682764,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382806,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNn0.yt4eKXMaw3wMg0vHITDdhJ1RI5xYal-qhdn997zwh-M"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d3821680-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:24.910662802Z"}]},"request_id":"40066860-fc8b-40f9-8b06-4641764aacfd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382807.0251472} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d381ef70-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7570d6a4-71d8-4fbc-a775-5f27978cb6ba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7570d6a4-71d8-4fbc-a775-5f27978cb6ba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:24.955398973Z"}]},"request_id":"483d105c-1084-4eea-8bda-a978717ebc99","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382807.0260272} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d3821680-2a6b-11ef-8ad5-3d996a2c698c"},"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/61c13310-1713-453c-98b7-bbfbf431e22d? 200 16ms","method":"GET","requestID":"d381ef70-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/61c13310-1713-453c-98b7-bbfbf431e22d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba? 200 16ms","method":"GET","requestID":"d3821680-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"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/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.682107,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382806,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNn0.yt4eKXMaw3wMg0vHITDdhJ1RI5xYal-qhdn997zwh-M"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d38a05c0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.345077,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382806,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNn0.yt4eKXMaw3wMg0vHITDdhJ1RI5xYal-qhdn997zwh-M"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d38a2cd0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:24.910662802Z"}]},"request_id":"d0993b84-74e5-4f25-a297-22f2865ce3cf","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382807.0779102} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d38a05c0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7570d6a4-71d8-4fbc-a775-5f27978cb6ba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7570d6a4-71d8-4fbc-a775-5f27978cb6ba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:24.955398973Z"}]},"request_id":"f2008820-a4c4-45f4-93c8-16e63675f566","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382807.0793998} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d38a2cd0-2a6b-11ef-8ad5-3d996a2c698c"},"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/61c13310-1713-453c-98b7-bbfbf431e22d? 200 16ms","method":"GET","requestID":"d38a05c0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/61c13310-1713-453c-98b7-bbfbf431e22d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba? 200 16ms","method":"GET","requestID":"d38a2cd0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.932915,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d38cebf0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3355ac5e-b2aa-42d4-be88-1a4d0eec4350#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3355ac5e-b2aa-42d4-be88-1a4d0eec4350","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"7d99df28-2d93-4226-b8f5-3844bfedde2d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382807.092132} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"07ea5293-9e77-4fa7-8dc2-a6b069780a19","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382807.0925238} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/update 200 20ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d6876497157b2d422e4a806c050a96f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} device-1 | {"level":"info","message":"POST /devices/61c13310-1713-453c-98b7-bbfbf431e22d/signaling 200 8ms","method":"POST","requestID":"d38cebf0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/devices/61c13310-1713-453c-98b7-bbfbf431e22d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.692635,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:27Z"} gateway-1 | {"time_local":"14/Jun/2024:16:33:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.121","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d6876497157b2d422e4a806c050a96f1"} experiment-1 | {"level":"info","message":"POST /experiments? 201 117ms","method":"POST","requestID":"d6876497157b2d422e4a806c050a96f1","responseTime":117,"status":201,"url":"/experiments?"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d38ec0b0-2a6b-11ef-8ad5-3d996a2c698c"},"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/7570d6a4-71d8-4fbc-a775-5f27978cb6ba/signaling 200 8ms","method":"POST","requestID":"d38ec0b0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwN30.xxro5tPHb0OZshMVtqEubVSc4QJ_vonk2cNapJ7DgX0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4c0bdb288fae113ef9f73cdbc4ea55dd","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"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":"40040a4f-b3cd-4611-ad39-f963a67dcd33"},{"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":"e6726199-3be6-46ef-9656-4070d1304508"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"e1381007-9b1b-43f3-a0db-5df559592b20"}]},"level":"info","message":"Built pairwise service configurations"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d"},{"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/7570d6a4-71d8-4fbc-a775-5f27978cb6ba"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.740001,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382807,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwN30.xxro5tPHb0OZshMVtqEubVSc4QJ_vonk2cNapJ7DgX0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4c0bdb288fae113ef9f73cdbc4ea55dd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.595164,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382806,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwNn0.yt4eKXMaw3wMg0vHITDdhJ1RI5xYal-qhdn997zwh-M"} 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":"d3906e60-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61c13310-1713-453c-98b7-bbfbf431e22d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:24.910662802Z"}]},"request_id":"2c18bfb1-f09a-4992-8406-d0cc1569c717","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382807.118857} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4c0bdb288fae113ef9f73cdbc4ea55dd"},"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/61c13310-1713-453c-98b7-bbfbf431e22d? 200 17ms","method":"GET","requestID":"4c0bdb288fae113ef9f73cdbc4ea55dd","responseTime":17,"status":200,"url":"/devices/61c13310-1713-453c-98b7-bbfbf431e22d?"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"783ee325-1f0e-4a85-9ca8-e7d6042dd752","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382807.125351} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"08a8bbc1-c83d-4c55-a62c-85c910c3a5f1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382807.1256986} gateway-1 | {"time_local":"14/Jun/2024:16:33:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/61c13310-1713-453c-98b7-bbfbf431e22d? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4c0bdb288fae113ef9f73cdbc4ea55dd"} 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":"d3906e60-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwN30.xxro5tPHb0OZshMVtqEubVSc4QJ_vonk2cNapJ7DgX0","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d692c5f054dea67b3556fad555a451a5","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:27Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.883598,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:27Z"} 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'"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382807,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwN30.xxro5tPHb0OZshMVtqEubVSc4QJ_vonk2cNapJ7DgX0"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696'"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d692c5f054dea67b3556fad555a451a5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696'"} 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":"d3906e60-2a6b-11ef-8ad5-3d996a2c698c","responseTime":35,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7570d6a4-71d8-4fbc-a775-5f27978cb6ba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7570d6a4-71d8-4fbc-a775-5f27978cb6ba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:24.955398973Z"}]},"request_id":"c82db4e2-f326-46d4-b4ed-6b7ee9005c44","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382807.1454964} 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":"d692c5f054dea67b3556fad555a451a5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba? 200 24ms","method":"GET","requestID":"d692c5f054dea67b3556fad555a451a5","responseTime":24,"status":200,"url":"/devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7570d6a4-71d8-4fbc-a775-5f27978cb6ba? 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":"d692c5f054dea67b3556fad555a451a5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"data":{"peerconnection":"a45d9eda-f4bd-4ee1-b89b-7604ef0fc696","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/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a45d9eda-f4bd-4ee1-b89b-7604ef0fc696","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"31d4eea58fb43f1b5130c94100705570","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/61c13310-1713-453c-98b7-bbfbf431e22d"},{"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/7570d6a4-71d8-4fbc-a775-5f27978cb6ba"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"31d4eea58fb43f1b5130c94100705570","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"31d4eea58fb43f1b5130c94100705570"} device-1 | {"data":{"peerconnection":"a45d9eda-f4bd-4ee1-b89b-7604ef0fc696","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a45d9eda-f4bd-4ee1-b89b-7604ef0fc696","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/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a45d9eda-f4bd-4ee1-b89b-7604ef0fc696","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"34c7a9607d58f6e20da832558e8e0053","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/61c13310-1713-453c-98b7-bbfbf431e22d"},{"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/7570d6a4-71d8-4fbc-a775-5f27978cb6ba"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:28Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa45d9eda-f4bd-4ee1-b89b-7604ef0fc696","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"59daca5b-d84b-45be-9ddd-137ceef61768","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.2583592} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.356892,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696","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":"d43efde0-2a6b-11ef-8ad5-3d996a2c698c"},"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/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696 200 8ms","method":"GET","requestID":"d43efde0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/peerconnections/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 30ms","method":"POST","requestID":"34c7a9607d58f6e20da832558e8e0053","responseTime":30,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"34c7a9607d58f6e20da832558e8e0053"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOH0.2QnQkXg4xL304v5jN0lY8SU4AFjClnHUNWD1hr5nguY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"826bbc598d6c276e34900cfd6306d2ac","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:28Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.6707,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382808,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOH0.2QnQkXg4xL304v5jN0lY8SU4AFjClnHUNWD1hr5nguY"} 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":"826bbc598d6c276e34900cfd6306d2ac"},"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/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"} experiment-1 | {"level":"info","message":"GET /experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350 200 9ms","method":"GET","requestID":"826bbc598d6c276e34900cfd6306d2ac","responseTime":9,"status":200,"url":"/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"} gateway-1 | {"time_local":"14/Jun/2024:16:33:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"826bbc598d6c276e34900cfd6306d2ac"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOH0.2QnQkXg4xL304v5jN0lY8SU4AFjClnHUNWD1hr5nguY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bcf242861dbeeb6119cacf069f0c4fb7","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:28Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.642952,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:28Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382808,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOH0.2QnQkXg4xL304v5jN0lY8SU4AFjClnHUNWD1hr5nguY"} 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":"bcf242861dbeeb6119cacf069f0c4fb7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:28Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.674107,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:28Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382808,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOH0.2QnQkXg4xL304v5jN0lY8SU4AFjClnHUNWD1hr5nguY"} 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":"d44fc6c0-2a6b-11ef-8ad5-3d996a2c698c"},"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/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a45d9eda-f4bd-4ee1-b89b-7604ef0fc696","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e2130bb660d801279db8dd18f2d2f087","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"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/61c13310-1713-453c-98b7-bbfbf431e22d"},{"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/7570d6a4-71d8-4fbc-a775-5f27978cb6ba"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ed08fe0166af75c7d295524b99dab820","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/61c13310-1713-453c-98b7-bbfbf431e22d"},{"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/7570d6a4-71d8-4fbc-a775-5f27978cb6ba"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa45d9eda-f4bd-4ee1-b89b-7604ef0fc696': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa45d9eda-f4bd-4ee1-b89b-7604ef0fc696","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"bb94ee63-8057-4d32-84e6-45819038c2f5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.3829787} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bbd1ce3a-fe0d-42dc-b5a8-ba3cc1518387","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.3832889} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d44fc6c0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"data":{"peerconnection":"a45d9eda-f4bd-4ee1-b89b-7604ef0fc696","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/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696 204 33ms","method":"DELETE","requestID":"d44fc6c0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":33,"status":204,"url":"/peerconnections/a45d9eda-f4bd-4ee1-b89b-7604ef0fc696"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3355ac5e-b2aa-42d4-be88-1a4d0eec4350': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3355ac5e-b2aa-42d4-be88-1a4d0eec4350","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"92309f19-a595-4ad3-9fd2-8366ea34af30","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.4224966} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"442d5937-065c-4aca-9fa6-d0c43365495b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.4225714} 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":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bcf242861dbeeb6119cacf069f0c4fb7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"} gateway-1 | {"time_local":"14/Jun/2024:16:33:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.125","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bcf242861dbeeb6119cacf069f0c4fb7"} gateway-1 | {"time_local":"14/Jun/2024:16:33:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1999","request_time":"2.961","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"b5026ab3abadec8056a739007570bcb7"} experiment-1 | {"level":"info","message":"DELETE /experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350 204 122ms","method":"DELETE","requestID":"bcf242861dbeeb6119cacf069f0c4fb7","responseTime":122,"status":204,"url":"/experiments/3355ac5e-b2aa-42d4-be88-1a4d0eec4350"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 99ms","method":"POST","requestID":"e2130bb660d801279db8dd18f2d2f087","responseTime":99,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.102","http_referrer":"","http_user_agent":"node-fetch","requestID":"e2130bb660d801279db8dd18f2d2f087"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 99ms","method":"POST","requestID":"ed08fe0166af75c7d295524b99dab820","responseTime":99,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.103","http_referrer":"","http_user_agent":"node-fetch","requestID":"ed08fe0166af75c7d295524b99dab820"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOH0.2QnQkXg4xL304v5jN0lY8SU4AFjClnHUNWD1hr5nguY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7c04f3cad8637c251f45ba8914d81c83","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"14/Jun/2024:16:33:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1755","request_time":"1.555","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"275a53523a4f8adac25caf42129e7989"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:28Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.084743,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382808,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOH0.2QnQkXg4xL304v5jN0lY8SU4AFjClnHUNWD1hr5nguY"} 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":"7c04f3cad8637c251f45ba8914d81c83"},"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/61c13310-1713-453c-98b7-bbfbf431e22d' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"890d9bdd-44fd-4024-9541-5234bb8445c8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.506845} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c04f3cad8637c251f45ba8914d81c83"},"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/7570d6a4-71d8-4fbc-a775-5f27978cb6ba' 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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"366d9b7f-a100-4780-828c-4a1a99b76fcb","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.5128255} 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":"7c04f3cad8637c251f45ba8914d81c83"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"4615a988-0235-4e0e-a825-a56c6144191e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.5235865} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c377432-5ae4-49d0-b96a-4328a863382d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.523704} 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":"7c04f3cad8637c251f45ba8914d81c83"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:28.523560147Z"}]},"request_id":"ec07fd2a-6223-49db-8107-bd80bde9d23c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.5289721} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c04f3cad8637c251f45ba8914d81c83"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7c04f3cad8637c251f45ba8914d81c83"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"7c04f3cad8637c251f45ba8914d81c83","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOH0.2QnQkXg4xL304v5jN0lY8SU4AFjClnHUNWD1hr5nguY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cb7872aa02cee3158a6ea669fd249f03","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:28Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.878326,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382808,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOH0.2QnQkXg4xL304v5jN0lY8SU4AFjClnHUNWD1hr5nguY"} 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":"cb7872aa02cee3158a6ea669fd249f03"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3e8e9026-2caf-4065-9748-93cd856aec57","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.5538461} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cb7872aa02cee3158a6ea669fd249f03"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"59c8c309-a5ef-4ecb-bbd4-57579466cc7f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.5586736} 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":"cb7872aa02cee3158a6ea669fd249f03"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"55e1108c-5052-4c29-aaaf-cd7c66504458","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.5730274} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d2c88667-c0ad-4d87-9026-f2fabd56d37a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.5732343} 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":"cb7872aa02cee3158a6ea669fd249f03"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:28.572998216Z"}]},"request_id":"ad5be424-8928-4022-b8b5-a9460a8f1f37","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382808.5777767} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cb7872aa02cee3158a6ea669fd249f03"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cb7872aa02cee3158a6ea669fd249f03"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"cb7872aa02cee3158a6ea669fd249f03","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9b41f022b2c6806da2b6afe76a76005a","responseTime":3,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3e1f14fa14eae0d487505de362eda3ec","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.663241,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b41f022b2c6806da2b6afe76a76005a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.564995,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} 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":"3e1f14fa14eae0d487505de362eda3ec"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:28.572998216Z"}]},"request_id":"986f7a9d-0f55-42b2-acec-3cf2af982e11","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.0673845} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b41f022b2c6806da2b6afe76a76005a"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:28.523560147Z"}]},"request_id":"aa1ebc75-e0a4-4b4c-bdce-f480cc33cb38","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.0682976} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e1f14fa14eae0d487505de362eda3ec"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fb4994f5-8183-438d-80cd-88fb08e8786a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.072565} 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":"9b41f022b2c6806da2b6afe76a76005a"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"599f602d-3150-4e19-815f-22c68a61ff9d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.073987} 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":"3e1f14fa14eae0d487505de362eda3ec"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:28.523560147Z"}]},"request_id":"c7ade9cd-139e-4ed8-b189-2c4190f57ab4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.0774357} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e1f14fa14eae0d487505de362eda3ec"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.028","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3e1f14fa14eae0d487505de362eda3ec"} device-1 | {"level":"info","message":"PATCH /devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e 200 21ms","method":"PATCH","requestID":"3e1f14fa14eae0d487505de362eda3ec","responseTime":21,"status":200,"url":"/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e560e5732305572ce64373273c14b036","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.630379,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} 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":"e560e5732305572ce64373273c14b036"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:28.572998216Z"}]},"request_id":"b470987d-eb89-4791-86bb-d2ac7f4a3001","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.0887172} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b41f022b2c6806da2b6afe76a76005a"},"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/d4d14e41-5b7b-46ed-b256-c735cf504d85 200 36ms","method":"PATCH","requestID":"9b41f022b2c6806da2b6afe76a76005a","responseTime":36,"status":200,"url":"/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85"} gateway-1 | {"time_local":"14/Jun/2024:16:33:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d4d14e41-5b7b-46ed-b256-c735cf504d85 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.041","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"9b41f022b2c6806da2b6afe76a76005a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4e45681f99de5346d5a28276e288ccf9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.297623,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e45681f99de5346d5a28276e288ccf9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e/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":"e560e5732305572ce64373273c14b036"} device-1 | {"level":"info","message":"POST /devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e/websocket 200 22ms","method":"POST","requestID":"e560e5732305572ce64373273c14b036","responseTime":22,"status":200,"url":"/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d4d14e41-5b7b-46ed-b256-c735cf504d85/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.020","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4e45681f99de5346d5a28276e288ccf9"} device-1 | {"level":"info","message":"POST /devices/d4d14e41-5b7b-46ed-b256-c735cf504d85/websocket 200 15ms","method":"POST","requestID":"4e45681f99de5346d5a28276e288ccf9","responseTime":15,"status":200,"url":"/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c8564e29657ce7385794c57e262659a6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.672559,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} 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":"c8564e29657ce7385794c57e262659a6"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:28.523560147Z"}]},"request_id":"804cf8e6-d10b-4607-a36d-7bd53cd916d2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.1415713} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c8564e29657ce7385794c57e262659a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c8564e29657ce7385794c57e262659a6"} device-1 | {"level":"info","message":"GET /devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e? 200 12ms","method":"GET","requestID":"c8564e29657ce7385794c57e262659a6","responseTime":12,"status":200,"url":"/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c3b8feb29dfa9f1940076273e195f770","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.849475,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} 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":"c3b8feb29dfa9f1940076273e195f770"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:28.572998216Z"}]},"request_id":"e632299c-f580-4417-8d15-fa4855d72b11","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.157575} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c3b8feb29dfa9f1940076273e195f770"},"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/d4d14e41-5b7b-46ed-b256-c735cf504d85? 200 10ms","method":"GET","requestID":"c3b8feb29dfa9f1940076273e195f770","responseTime":10,"status":200,"url":"/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d4d14e41-5b7b-46ed-b256-c735cf504d85? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c3b8feb29dfa9f1940076273e195f770"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"367f86ee7e551efeff532b30d04a17f8","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:48592","level":"info","msg":"Received request.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.67897,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} 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":"367f86ee7e551efeff532b30d04a17f8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"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:48592","level":"info","msg":"Received request.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.841904,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4cf7e10-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.662888,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} 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":"d4cfa520-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:28.523560147Z"}]},"request_id":"91b42cc9-e9db-469d-be4c-932d4b718b4e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.209517} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4cf7e10-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:28.572998216Z"}]},"request_id":"b6d5a214-e718-4bf8-ac95-67def156f97e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.2106295} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4cfa520-2a6b-11ef-8ad5-3d996a2c698c"},"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/34752f03-ee18-4c22-94ec-9ae37ee9fd6e? 200 13ms","method":"GET","requestID":"d4cf7e10-2a6b-11ef-8ad5-3d996a2c698c","responseTime":13,"status":200,"url":"/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d4d14e41-5b7b-46ed-b256-c735cf504d85? 200 13ms","method":"GET","requestID":"d4cfa520-2a6b-11ef-8ad5-3d996a2c698c","responseTime":13,"status":200,"url":"/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"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/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.660693,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4d857b0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.572092,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4d87ec0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:28.523560147Z"}]},"request_id":"254b39a7-f07e-4330-be64-3bacab9c53f9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.26866} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4d857b0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:28.572998216Z"}]},"request_id":"eb046456-0961-422c-ba43-db5f8b1e9c75","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.269978} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4d87ec0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1338c91b-2ae1-40f5-bcca-7f7dcd59753d#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1338c91b-2ae1-40f5-bcca-7f7dcd59753d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"d345cf65-caf4-496c-83c9-ffe131e7301c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.275098} 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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5aa1a963-f301-419b-9836-40634102ec3d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.2754157} device-1 | {"level":"info","message":"GET /devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e? 200 17ms","method":"GET","requestID":"d4d857b0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":17,"status":200,"url":"/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d4d14e41-5b7b-46ed-b256-c735cf504d85? 200 17ms","method":"GET","requestID":"d4d87ec0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":17,"status":200,"url":"/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85?"} 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":"367f86ee7e551efeff532b30d04a17f8"},"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:48592","level":"info","msg":"Received request.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.91389,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4db8c00-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 121ms","method":"POST","requestID":"367f86ee7e551efeff532b30d04a17f8","responseTime":121,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.125","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"367f86ee7e551efeff532b30d04a17f8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e/signaling 200 9ms","method":"POST","requestID":"d4db8c00-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5f4220c1fb8d761359f6821a960ee2e0","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.689715,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d4dd39b0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.763942,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} 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":"5f4220c1fb8d761359f6821a960ee2e0"},"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/d4d14e41-5b7b-46ed-b256-c735cf504d85/signaling 200 11ms","method":"POST","requestID":"d4dd39b0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":11,"status":200,"url":"/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85/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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F34752f03-ee18-4c22-94ec-9ae37ee9fd6e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:28.523560147Z"}]},"request_id":"6fee6eb2-47c7-42a6-98c2-f70a8542c78e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.302286} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"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":"a12a8e86-5235-4a71-9d71-52c2365e586c"},{"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":"6fb71e5b-324d-4550-ad5d-c7a34cc3987d"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"49b69054-1a27-49ef-8423-6f833208bf49"}]},"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":"5f4220c1fb8d761359f6821a960ee2e0"},"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":"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/d4d14e41-5b7b-46ed-b256-c735cf504d85"},{"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/34752f03-ee18-4c22-94ec-9ae37ee9fd6e"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5f4220c1fb8d761359f6821a960ee2e0"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} device-1 | {"level":"info","message":"GET /devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e? 200 14ms","method":"GET","requestID":"5f4220c1fb8d761359f6821a960ee2e0","responseTime":14,"status":200,"url":"/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e?"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.844116,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} 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":"d4df5c90-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fc96e9ba5df60e62fae9210d0189bb68","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669602,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fc96e9ba5df60e62fae9210d0189bb68"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"94777704-bb33-4afd-a823-0a1f275249e0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.3189597} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db898666-14b1-4eed-bfe3-9c3009c86135","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.319161} 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":"d4df5c90-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4d14e41-5b7b-46ed-b256-c735cf504d85","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:28.572998216Z"}]},"request_id":"48a8036d-704c-42e2-a7a1-42317394f9d9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.3232915} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fc96e9ba5df60e62fae9210d0189bb68"},"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/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67'"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d4d14e41-5b7b-46ed-b256-c735cf504d85? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fc96e9ba5df60e62fae9210d0189bb68"} device-1 | {"level":"info","message":"GET /devices/d4d14e41-5b7b-46ed-b256-c735cf504d85? 200 19ms","method":"GET","requestID":"fc96e9ba5df60e62fae9210d0189bb68","responseTime":19,"status":200,"url":"/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85?"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 29ms","method":"POST","requestID":"d4df5c90-2a6b-11ef-8ad5-3d996a2c698c","responseTime":29,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"data":{"peerconnection":"8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67","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/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8c01edf89e1975487e9cb0e15a8013c5","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/d4d14e41-5b7b-46ed-b256-c735cf504d85"},{"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/34752f03-ee18-4c22-94ec-9ae37ee9fd6e"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"8c01edf89e1975487e9cb0e15a8013c5","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"8c01edf89e1975487e9cb0e15a8013c5"} device-1 | {"data":{"peerconnection":"8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67","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/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1f63dc75c9275792e71d66564d8fe7da","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/d4d14e41-5b7b-46ed-b256-c735cf504d85"},{"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/34752f03-ee18-4c22-94ec-9ae37ee9fd6e"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8181927a-6d3b-4282-ba6f-2127037bf8b7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.4288077} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.895088,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67","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":"d4f15df0-2a6b-11ef-8ad5-3d996a2c698c"},"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/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67 200 9ms","method":"GET","requestID":"d4f15df0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/peerconnections/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 30ms","method":"POST","requestID":"1f63dc75c9275792e71d66564d8fe7da","responseTime":30,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.033","http_referrer":"","http_user_agent":"node-fetch","requestID":"1f63dc75c9275792e71d66564d8fe7da"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e2a982b8dad60cfcbfea8d5c632b1d4e","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.714866,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} 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":"e2a982b8dad60cfcbfea8d5c632b1d4e"},"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/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"} experiment-1 | {"level":"info","message":"GET /experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d 200 9ms","method":"GET","requestID":"e2a982b8dad60cfcbfea8d5c632b1d4e","responseTime":9,"status":200,"url":"/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"} gateway-1 | {"time_local":"14/Jun/2024:16:33:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d HTTP/1.1","status": "200","body_bytes_sent":"1368","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e2a982b8dad60cfcbfea8d5c632b1d4e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4a830dca2b3400c12d9cd1243fb4f0f9","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.759058,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} 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":"4a830dca2b3400c12d9cd1243fb4f0f9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.647996,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} 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":"d501ffc0-2a6b-11ef-8ad5-3d996a2c698c"},"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/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"c98914ff-8d41-4cb9-910c-d403c5f1926b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.545675} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"93997c68-9ebd-4ad1-bde9-88d313224cb4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.5460258} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d6d8e7c67d34fb979a593490a30cc939","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"35c7871262d19fda726fd207a05c7a3c","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":"d501ffc0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} 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/d4d14e41-5b7b-46ed-b256-c735cf504d85"},{"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/34752f03-ee18-4c22-94ec-9ae37ee9fd6e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67"}}},"level":"info","message":"received a callback"} 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/d4d14e41-5b7b-46ed-b256-c735cf504d85"},{"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/34752f03-ee18-4c22-94ec-9ae37ee9fd6e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67","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/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67 204 32ms","method":"DELETE","requestID":"d501ffc0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":32,"status":204,"url":"/peerconnections/8e9eafb7-cb7a-4d3c-8479-fc7724b1cb67"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1338c91b-2ae1-40f5-bcca-7f7dcd59753d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1338c91b-2ae1-40f5-bcca-7f7dcd59753d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"fd7f7b6b-5ff8-4928-b6b9-87ff8f6c1d1d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.588026} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7246ef1f-8f54-47b8-a807-692b6cf09992","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.5882316} 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":"4a830dca2b3400c12d9cd1243fb4f0f9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"} gateway-1 | {"time_local":"14/Jun/2024:16:33:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.116","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4a830dca2b3400c12d9cd1243fb4f0f9"} experiment-1 | {"level":"info","message":"DELETE /experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d 204 114ms","method":"DELETE","requestID":"4a830dca2b3400c12d9cd1243fb4f0f9","responseTime":114,"status":204,"url":"/experiments/1338c91b-2ae1-40f5-bcca-7f7dcd59753d"} gateway-1 | {"time_local":"14/Jun/2024:16:33:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1760","request_time":"0.522","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"82c5ae211950f43557aabc3d5da86c51"} gateway-1 | {"time_local":"14/Jun/2024:16:33:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1762","request_time":"0.530","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f6517b685d55bf07d765b3f77336952a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 91ms","method":"POST","requestID":"d6d8e7c67d34fb979a593490a30cc939","responseTime":91,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.096","http_referrer":"","http_user_agent":"node-fetch","requestID":"d6d8e7c67d34fb979a593490a30cc939"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 92ms","method":"POST","requestID":"35c7871262d19fda726fd207a05c7a3c","responseTime":92,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.097","http_referrer":"","http_user_agent":"node-fetch","requestID":"35c7871262d19fda726fd207a05c7a3c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a1c07b1760dd228b9f2dcf7da1ce22d1","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.843223,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} 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":"a1c07b1760dd228b9f2dcf7da1ce22d1"},"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/d4d14e41-5b7b-46ed-b256-c735cf504d85' closed"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/34752f03-ee18-4c22-94ec-9ae37ee9fd6e' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"591f770b-fdb0-4b44-8761-ae3a97cc1195","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.6724358} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a1c07b1760dd228b9f2dcf7da1ce22d1"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"00a1a8b8-cbc7-43b3-9963-7adfed85d400","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.677997} 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":"a1c07b1760dd228b9f2dcf7da1ce22d1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"9f868f0d-f142-4304-ac56-d7619330d4c1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.6890135} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5dfd6535-fc1d-41f7-a144-93fc5e9a282d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.6892278} 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":"a1c07b1760dd228b9f2dcf7da1ce22d1"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:29.688985895Z"}]},"request_id":"fe170aac-8acf-42f3-aad5-3f48de36a4ca","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.695014} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a1c07b1760dd228b9f2dcf7da1ce22d1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.059","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a1c07b1760dd228b9f2dcf7da1ce22d1"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"a1c07b1760dd228b9f2dcf7da1ce22d1","responseTime":50,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a2df8cf388bfd35e853cba4b1ec2d842","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.130837,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382809,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgwOX0.Kxw1k4K8JYGdtKPFycgcDMQmQlT14nKBCHvovRj-OvQ"} 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":"a2df8cf388bfd35e853cba4b1ec2d842"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"059cd5f3-296b-4d3a-bdab-e18f9eccf896","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.7226722} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a2df8cf388bfd35e853cba4b1ec2d842"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c0fd68a0-8334-4692-bf85-2950841fd4e3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.7285976} 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":"a2df8cf388bfd35e853cba4b1ec2d842"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"c54f3cb6-cc06-47e0-9eb4-a41a7142bb7b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.744134} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bcc50423-3235-4ec0-91bb-01c59b00a09b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.7442515} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a2df8cf388bfd35e853cba4b1ec2d842"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:29.744114202Z"}]},"request_id":"de48b9df-0e6f-46b4-9ba7-b328a3096a2e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382809.7501872} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a2df8cf388bfd35e853cba4b1ec2d842"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a2df8cf388bfd35e853cba4b1ec2d842"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"a2df8cf388bfd35e853cba4b1ec2d842","responseTime":50,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"d3550b3331b57eebd90f94ee92ff21a6","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"37eec508bc33214c7a0146a6eca7bb14","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.611192,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d3550b3331b57eebd90f94ee92ff21a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.687865,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"37eec508bc33214c7a0146a6eca7bb14"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:29.688985895Z"}]},"request_id":"70273926-1c75-4704-91e9-e40b6540d74d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.258261} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d3550b3331b57eebd90f94ee92ff21a6"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:29.744114202Z"}]},"request_id":"6e2632b5-35e5-425b-86ac-37a42b16fe9d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.2594213} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"37eec508bc33214c7a0146a6eca7bb14"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1e337a2f-3de4-4777-a8e9-a8757fbb732a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.2642844} 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":"d3550b3331b57eebd90f94ee92ff21a6"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"906cc18b-4ca7-4a6a-b310-06d0ffa8b502","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.2659545} 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":"37eec508bc33214c7a0146a6eca7bb14"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:29.744114202Z"}]},"request_id":"ea531aef-8cab-4cbd-8768-14ecbf08a68d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.269026} 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":"37eec508bc33214c7a0146a6eca7bb14"},"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":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.034","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"37eec508bc33214c7a0146a6eca7bb14"} device-1 | {"level":"info","message":"PATCH /devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d 200 26ms","method":"PATCH","requestID":"37eec508bc33214c7a0146a6eca7bb14","responseTime":26,"status":200,"url":"/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:29.688985895Z"}]},"request_id":"4c794dec-070f-44ec-b503-23d2bda858ec","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.277683} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3e36ab3ddc2be3c8675513dc431e2003","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d3550b3331b57eebd90f94ee92ff21a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/f346a985-8043-4681-8059-2bfe6139b0ac HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.041","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d3550b3331b57eebd90f94ee92ff21a6"} device-1 | {"level":"info","message":"PATCH /devices/f346a985-8043-4681-8059-2bfe6139b0ac 200 33ms","method":"PATCH","requestID":"d3550b3331b57eebd90f94ee92ff21a6","responseTime":33,"status":200,"url":"/devices/f346a985-8043-4681-8059-2bfe6139b0ac"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f92343b7a8d5dfac6e880ba70d5942e2","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.768432,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"3e36ab3ddc2be3c8675513dc431e2003"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.635963,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"f92343b7a8d5dfac6e880ba70d5942e2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.022","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3e36ab3ddc2be3c8675513dc431e2003"} device-1 | {"level":"info","message":"POST /devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d/websocket 200 16ms","method":"POST","requestID":"3e36ab3ddc2be3c8675513dc431e2003","responseTime":16,"status":200,"url":"/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f346a985-8043-4681-8059-2bfe6139b0ac/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":"f92343b7a8d5dfac6e880ba70d5942e2"} device-1 | {"level":"info","message":"POST /devices/f346a985-8043-4681-8059-2bfe6139b0ac/websocket 200 20ms","method":"POST","requestID":"f92343b7a8d5dfac6e880ba70d5942e2","responseTime":20,"status":200,"url":"/devices/f346a985-8043-4681-8059-2bfe6139b0ac/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5ea211f67fdce06e02536a9c0f1491e1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.732263,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"5ea211f67fdce06e02536a9c0f1491e1"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:29.688985895Z"}]},"request_id":"717815ff-259f-4276-8335-3187b1cdcda1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.3372169} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5ea211f67fdce06e02536a9c0f1491e1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f346a985-8043-4681-8059-2bfe6139b0ac? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5ea211f67fdce06e02536a9c0f1491e1"} device-1 | {"level":"info","message":"GET /devices/f346a985-8043-4681-8059-2bfe6139b0ac? 200 12ms","method":"GET","requestID":"5ea211f67fdce06e02536a9c0f1491e1","responseTime":12,"status":200,"url":"/devices/f346a985-8043-4681-8059-2bfe6139b0ac?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2e1e47d37fff8452b1c587f35d0a581b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.71878,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"2e1e47d37fff8452b1c587f35d0a581b"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:29.744114202Z"}]},"request_id":"182fcf16-3538-457b-be0b-96a5924a9ae7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.3529317} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2e1e47d37fff8452b1c587f35d0a581b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2e1e47d37fff8452b1c587f35d0a581b"} device-1 | {"level":"info","message":"GET /devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d? 200 12ms","method":"GET","requestID":"2e1e47d37fff8452b1c587f35d0a581b","responseTime":12,"status":200,"url":"/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"23c845cec8c7e94337b817de9e106ee9","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:48592","level":"info","msg":"Received request.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.67182,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"23c845cec8c7e94337b817de9e106ee9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"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:48592","level":"info","msg":"Received request.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.614628,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"d584eb60-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.715228,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"d5853980-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:29.688985895Z"}]},"request_id":"f893efaa-8ba5-4a03-849d-7a0a8aee294c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.3986926} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d584eb60-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:29.744114202Z"}]},"request_id":"4cb184e1-2fbc-41d2-9a14-e626b5c027cc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.3999872} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d5853980-2a6b-11ef-8ad5-3d996a2c698c"},"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/f346a985-8043-4681-8059-2bfe6139b0ac? 200 15ms","method":"GET","requestID":"d584eb60-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/f346a985-8043-4681-8059-2bfe6139b0ac?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d? 200 14ms","method":"GET","requestID":"d5853980-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"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/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.683002,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.688548,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d58d01b0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d58d4fd0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:29.688985895Z"}]},"request_id":"ff981e2d-db5e-443a-9dfd-8330cbee7ea6","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.4541185} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d58d01b0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:29.744114202Z"}]},"request_id":"8c06db13-d93c-47c7-be7c-a53c503aa3ea","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.4557905} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d58d4fd0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fde90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fde90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"71ed4e18-818a-49f2-a8ea-0fe01027088a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.461451} device-1 | {"level":"info","message":"GET /devices/f346a985-8043-4681-8059-2bfe6139b0ac? 200 18ms","method":"GET","requestID":"d58d01b0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":18,"status":200,"url":"/devices/f346a985-8043-4681-8059-2bfe6139b0ac?"} 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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b81090d5-1af9-48a8-9507-850787fd282a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.461712} device-1 | {"level":"info","message":"GET /devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d? 200 17ms","method":"GET","requestID":"d58d4fd0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":17,"status":200,"url":"/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d?"} 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":"23c845cec8c7e94337b817de9e106ee9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.962747,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.111","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"23c845cec8c7e94337b817de9e106ee9"} experiment-1 | {"level":"info","message":"POST /experiments? 201 107ms","method":"POST","requestID":"23c845cec8c7e94337b817de9e106ee9","responseTime":107,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d5903600-2a6b-11ef-8ad5-3d996a2c698c"},"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/f346a985-8043-4681-8059-2bfe6139b0ac/signaling 200 8ms","method":"POST","requestID":"d5903600-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/devices/f346a985-8043-4681-8059-2bfe6139b0ac/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4899815ada60e10c9fde02c425afbafe","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.597014,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"4899815ada60e10c9fde02c425afbafe"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.701765,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d591e3b0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff346a985-8043-4681-8059-2bfe6139b0ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:29.688985895Z"}]},"request_id":"0cd23859-205f-41d2-98e2-05f94e2b0257","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.4828906} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d/signaling 200 9ms","method":"POST","requestID":"d591e3b0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d/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":"4899815ada60e10c9fde02c425afbafe"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"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":"4976b8ab-7e9f-482f-84e7-4123ff132a4a"},{"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":"392c09c3-0b57-481b-ac49-bbc1177e3b16"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"1a146354-9859-40ff-96d5-20c25db246c9"}]},"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/f346a985-8043-4681-8059-2bfe6139b0ac"},{"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/2e5927bd-babb-4f62-84d5-a2ce80288d6d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f346a985-8043-4681-8059-2bfe6139b0ac? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4899815ada60e10c9fde02c425afbafe"} device-1 | {"level":"info","message":"GET /devices/f346a985-8043-4681-8059-2bfe6139b0ac? 200 15ms","method":"GET","requestID":"4899815ada60e10c9fde02c425afbafe","responseTime":15,"status":200,"url":"/devices/f346a985-8043-4681-8059-2bfe6139b0ac?"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.653093,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"d5939160-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c65b1c0853740e99c5b895ed06ab2759","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.689252,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"c65b1c0853740e99c5b895ed06ab2759"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"92eb0b2a-c3cb-4480-aba6-e35ccf0928ed","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.502493} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"defbe314-cadc-49f6-ab1d-722b0cd73026","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.5026963} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2e5927bd-babb-4f62-84d5-a2ce80288d6d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:29.744114202Z"}]},"request_id":"4064e383-8bea-48c5-8944-05f8b580fc3e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.5031562} 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":"d5939160-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c65b1c0853740e99c5b895ed06ab2759"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c65b1c0853740e99c5b895ed06ab2759"} device-1 | {"level":"info","message":"GET /devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d? 200 15ms","method":"GET","requestID":"c65b1c0853740e99c5b895ed06ab2759","responseTime":15,"status":200,"url":"/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d?"} 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/a39861c4-b64c-41c1-a7e0-c9be82df238c'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a39861c4-b64c-41c1-a7e0-c9be82df238c'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 34ms","method":"POST","requestID":"d5939160-2a6b-11ef-8ad5-3d996a2c698c","responseTime":34,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"a39861c4-b64c-41c1-a7e0-c9be82df238c","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a39861c4-b64c-41c1-a7e0-c9be82df238c","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/a39861c4-b64c-41c1-a7e0-c9be82df238c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a39861c4-b64c-41c1-a7e0-c9be82df238c","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"level":"info","message":"Successfully created peerconnections for 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d87496a78f7ffc19fdf797fef5655766","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/f346a985-8043-4681-8059-2bfe6139b0ac"},{"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/2e5927bd-babb-4f62-84d5-a2ce80288d6d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a39861c4-b64c-41c1-a7e0-c9be82df238c"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"d87496a78f7ffc19fdf797fef5655766","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"d87496a78f7ffc19fdf797fef5655766"} device-1 | {"data":{"peerconnection":"a39861c4-b64c-41c1-a7e0-c9be82df238c","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a39861c4-b64c-41c1-a7e0-c9be82df238c","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/a39861c4-b64c-41c1-a7e0-c9be82df238c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a39861c4-b64c-41c1-a7e0-c9be82df238c","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"ba92c6dca1a089c95adde9be2aa82926","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac"},{"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/2e5927bd-babb-4f62-84d5-a2ce80288d6d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/a39861c4-b64c-41c1-a7e0-c9be82df238c"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa39861c4-b64c-41c1-a7e0-c9be82df238c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"692bd4f3-ed63-447a-b87f-be0da26fccf5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.5990126} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.371982,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a39861c4-b64c-41c1-a7e0-c9be82df238c","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a39861c4-b64c-41c1-a7e0-c9be82df238c","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":"d5a40c20-2a6b-11ef-8ad5-3d996a2c698c"},"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/a39861c4-b64c-41c1-a7e0-c9be82df238c 200 8ms","method":"GET","requestID":"d5a40c20-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/peerconnections/a39861c4-b64c-41c1-a7e0-c9be82df238c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"ba92c6dca1a089c95adde9be2aa82926","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"ba92c6dca1a089c95adde9be2aa82926"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ec9df35d84f889f9efc763fded324aa5","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.96268,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"ec9df35d84f889f9efc763fded324aa5"},"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/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"} experiment-1 | {"level":"info","message":"GET /experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b 200 9ms","method":"GET","requestID":"ec9df35d84f889f9efc763fded324aa5","responseTime":9,"status":200,"url":"/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b HTTP/1.1","status": "200","body_bytes_sent":"1368","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ec9df35d84f889f9efc763fded324aa5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"432559b166baaa1540a46aab442679b9","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.693415,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"432559b166baaa1540a46aab442679b9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.966982,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a39861c4-b64c-41c1-a7e0-c9be82df238c","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/a39861c4-b64c-41c1-a7e0-c9be82df238c","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"d5b52320-2a6b-11ef-8ad5-3d996a2c698c"},"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/a39861c4-b64c-41c1-a7e0-c9be82df238c' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/a39861c4-b64c-41c1-a7e0-c9be82df238c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a39861c4-b64c-41c1-a7e0-c9be82df238c","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f2c3d045650850f8a31858f5dc6f8fb1","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa39861c4-b64c-41c1-a7e0-c9be82df238c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa39861c4-b64c-41c1-a7e0-c9be82df238c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"0d4dea60-bd05-4cb4-b07e-582d8e608eab","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.7231734} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7a0767e0-f436-4c1f-bab5-d36e7b68d6ef","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.7234638} 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":"d5b52320-2a6b-11ef-8ad5-3d996a2c698c"},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b103626f5499b496fc95ef1bf8334d1c","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/f346a985-8043-4681-8059-2bfe6139b0ac"},{"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/2e5927bd-babb-4f62-84d5-a2ce80288d6d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a39861c4-b64c-41c1-a7e0-c9be82df238c"}}},"level":"info","message":"received a callback"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/f346a985-8043-4681-8059-2bfe6139b0ac"},{"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/2e5927bd-babb-4f62-84d5-a2ce80288d6d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a39861c4-b64c-41c1-a7e0-c9be82df238c"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"a39861c4-b64c-41c1-a7e0-c9be82df238c","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/a39861c4-b64c-41c1-a7e0-c9be82df238c 204 38ms","method":"DELETE","requestID":"d5b52320-2a6b-11ef-8ad5-3d996a2c698c","responseTime":38,"status":204,"url":"/peerconnections/a39861c4-b64c-41c1-a7e0-c9be82df238c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fde90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fde90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"f87b24bc-a4f9-4474-a65e-bedd4fd75ce8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.7669253} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"81459f0b-14ab-42bf-b97a-519c2597410e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.7672088} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"432559b166baaa1540a46aab442679b9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.121","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"432559b166baaa1540a46aab442679b9"} experiment-1 | {"level":"info","message":"DELETE /experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b 204 118ms","method":"DELETE","requestID":"432559b166baaa1540a46aab442679b9","responseTime":118,"status":204,"url":"/experiments/de90ba39-437a-4e8f-bf7a-f2b1cd7e3a0b"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1762","request_time":"0.509","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d64c02e335e73984b2ce0ee6fa718a6c"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1760","request_time":"0.516","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4e0dda1876b574971322893509406047"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 90ms","method":"POST","requestID":"f2c3d045650850f8a31858f5dc6f8fb1","responseTime":90,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 91ms","method":"POST","requestID":"b103626f5499b496fc95ef1bf8334d1c","responseTime":91,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.096","http_referrer":"","http_user_agent":"node-fetch","requestID":"f2c3d045650850f8a31858f5dc6f8fb1"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.096","http_referrer":"","http_user_agent":"node-fetch","requestID":"b103626f5499b496fc95ef1bf8334d1c"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/2e5927bd-babb-4f62-84d5-a2ce80288d6d' closed"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"5d4d0437ba656da5bddc6679b3015bcd","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.763141,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"5d4d0437ba656da5bddc6679b3015bcd"},"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/f346a985-8043-4681-8059-2bfe6139b0ac' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"414324b6-73f3-46e3-86a5-d7fee6b10a74","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.8464653} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5d4d0437ba656da5bddc6679b3015bcd"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d0a4fc04-5e06-465d-a3be-acf36a158946","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.8528767} 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":"5d4d0437ba656da5bddc6679b3015bcd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"07708eeb-2a8d-4ae1-92b7-b2b0dde84553","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.8639343} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"408fb54f-bac2-42d4-b69a-3123ac840506","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.8640158} 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":"5d4d0437ba656da5bddc6679b3015bcd"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:30.863906155Z"}]},"request_id":"4542a539-0509-4ba5-9f09-e034d473660f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.8693192} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5d4d0437ba656da5bddc6679b3015bcd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5d4d0437ba656da5bddc6679b3015bcd"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"5d4d0437ba656da5bddc6679b3015bcd","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c797f9612b3a0c58dad8eb1aa8c24a0d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.954267,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382810,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMH0.MaOIXEan0xN3RF2JM7B98p8i0R6iiSMVGsHlgLvvZO4"} 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":"c797f9612b3a0c58dad8eb1aa8c24a0d"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8dcbdfbc-0e17-4471-abf9-b16602a5d20f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5c7c4c1b-0d4d-4ccd-80b7-680057b148de","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.8965364} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c797f9612b3a0c58dad8eb1aa8c24a0d"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"031220d3-ce2c-4797-aa18-f610534feeae","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.9029803} 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":"c797f9612b3a0c58dad8eb1aa8c24a0d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8dcbdfbc-0e17-4471-abf9-b16602a5d20f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"ac74a1d4-dd8c-4d41-919c-e731650f4977","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.9195697} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"769d55dc-f5ae-4758-b6c6-72301072769c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.9198482} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"199","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c797f9612b3a0c58dad8eb1aa8c24a0d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8dcbdfbc-0e17-4471-abf9-b16602a5d20f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8dcbdfbc-0e17-4471-abf9-b16602a5d20f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:30.919539608Z"}]},"request_id":"d785ef36-65e5-462d-b954-9c1b2019d107","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382810.9255416} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c797f9612b3a0c58dad8eb1aa8c24a0d"},"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":"c797f9612b3a0c58dad8eb1aa8c24a0d","responseTime":51,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c797f9612b3a0c58dad8eb1aa8c24a0d"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"066968936e0865376dc7561d403d1bc3","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f/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":"066968936e0865376dc7561d403d1bc3"} device-1 | {"level":"info","message":"OPTIONS /devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f/websocket 200 1ms","method":"OPTIONS","requestID":"066968936e0865376dc7561d403d1bc3","responseTime":1,"status":200,"url":"/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f/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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b0b12216acb581a76e8316363319cddf","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9/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":"b0b12216acb581a76e8316363319cddf"} device-1 | {"level":"info","message":"OPTIONS /devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9/websocket 200 1ms","method":"OPTIONS","requestID":"b0b12216acb581a76e8316363319cddf","responseTime":1,"status":200,"url":"/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e0c35b4afd92fbda15098c76dc2fd142","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9d47fad5bc7427c372a90c2da5e2ae9a","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:32Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.557421,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:32Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382812,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0c35b4afd92fbda15098c76dc2fd142"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.685284,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382812,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48"} 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":"9d47fad5bc7427c372a90c2da5e2ae9a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.014","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9d47fad5bc7427c372a90c2da5e2ae9a"} device-1 | {"level":"info","message":"POST /devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9/websocket 200 9ms","method":"POST","requestID":"9d47fad5bc7427c372a90c2da5e2ae9a","responseTime":9,"status":200,"url":"/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e0c35b4afd92fbda15098c76dc2fd142"} device-1 | {"level":"info","message":"POST /devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f/websocket 200 22ms","method":"POST","requestID":"e0c35b4afd92fbda15098c76dc2fd142","responseTime":22,"status":200,"url":"/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"71f84ad0c2a4fbcc3bf2dfdc6b9349ca","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:32Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.629112,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382812,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48"} 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":"71f84ad0c2a4fbcc3bf2dfdc6b9349ca"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:30.863906155Z"}]},"request_id":"42382077-3e64-46f3-b155-da6324956796","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382812.9089994} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"71f84ad0c2a4fbcc3bf2dfdc6b9349ca"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9? 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":"71f84ad0c2a4fbcc3bf2dfdc6b9349ca"} device-1 | {"level":"info","message":"GET /devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9? 200 10ms","method":"GET","requestID":"71f84ad0c2a4fbcc3bf2dfdc6b9349ca","responseTime":10,"status":200,"url":"/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a3bd2a77c9234aad73c636e694c36ec1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:32Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.648763,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382812,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48"} 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":"a3bd2a77c9234aad73c636e694c36ec1"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8dcbdfbc-0e17-4471-abf9-b16602a5d20f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8dcbdfbc-0e17-4471-abf9-b16602a5d20f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:30.919539608Z"}]},"request_id":"2c5e4157-287f-4e0f-b950-70ea621b9ec2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382812.923081} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a3bd2a77c9234aad73c636e694c36ec1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a3bd2a77c9234aad73c636e694c36ec1"} device-1 | {"level":"info","message":"GET /devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f? 200 10ms","method":"GET","requestID":"a3bd2a77c9234aad73c636e694c36ec1","responseTime":10,"status":200,"url":"/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bddf314cacdd88d01fbc85d27f2175b6","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:48592","level":"info","msg":"Received request.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:32Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.733774,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382812,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48"} 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":"bddf314cacdd88d01fbc85d27f2175b6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"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:48592","level":"info","msg":"Received request.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:32Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.65947,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:32Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382812,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48"} 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":"d70e98a0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.5357,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382812,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48"} 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":"d70ebfb0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:30.863906155Z"}]},"request_id":"a68535eb-305d-4123-ae34-9df94f038c7e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382812.9778156} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d70e98a0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8dcbdfbc-0e17-4471-abf9-b16602a5d20f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8dcbdfbc-0e17-4471-abf9-b16602a5d20f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:30.919539608Z"}]},"request_id":"c3a0120a-5280-42aa-bab9-f14a03bd698a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382812.9786608} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d70ebfb0-2a6b-11ef-8ad5-3d996a2c698c"},"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/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9? 200 12ms","method":"GET","requestID":"d70e98a0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":12,"status":200,"url":"/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f? 200 12ms","method":"GET","requestID":"d70ebfb0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":12,"status":200,"url":"/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"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/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.635346,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382812,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d71687e0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.639381,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382812,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d716d600-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:30.863906155Z"}]},"request_id":"37ac3937-3731-4144-b8c3-660b47e8d086","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.031854} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d71687e0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8dcbdfbc-0e17-4471-abf9-b16602a5d20f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8dcbdfbc-0e17-4471-abf9-b16602a5d20f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:30.919539608Z"}]},"request_id":"72ac27df-6823-4e36-9aa6-50a336838d5e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.033118} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d716d600-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe52a18ee-871c-4541-b37a-62ba2cda02e6#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe52a18ee-871c-4541-b37a-62ba2cda02e6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"4d042fdb-728d-4e86-a57d-83a963b7a39c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.03652} 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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"54c83809-8d7c-442c-93de-6fa33ff0fc2d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.036898} device-1 | {"level":"info","message":"GET /devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9? 200 16ms","method":"GET","requestID":"d71687e0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bddf314cacdd88d01fbc85d27f2175b6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"level":"info","message":"GET /devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f? 200 14ms","method":"GET","requestID":"d716d600-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:33Z"} experiment-1 | {"level":"info","message":"POST /experiments? 201 114ms","method":"POST","requestID":"bddf314cacdd88d01fbc85d27f2175b6","responseTime":114,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.681723,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:33Z"} gateway-1 | {"time_local":"14/Jun/2024:16:33:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.118","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bddf314cacdd88d01fbc85d27f2175b6"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d7199520-2a6b-11ef-8ad5-3d996a2c698c"},"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/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9/signaling 200 7ms","method":"POST","requestID":"d7199520-2a6b-11ef-8ad5-3d996a2c698c","responseTime":7,"status":200,"url":"/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxM30.bwMkbYMQlHz-SiFV1JBMqh4z1KiWWqCcKMYtC6cD4xs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"43cb20ca7a32e7fa7fc55f8d9d52fef9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.937833,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d71b1bc0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.772916,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382813,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxM30.bwMkbYMQlHz-SiFV1JBMqh4z1KiWWqCcKMYtC6cD4xs"} 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":"43cb20ca7a32e7fa7fc55f8d9d52fef9"},"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/8dcbdfbc-0e17-4471-abf9-b16602a5d20f/signaling 200 8ms","method":"POST","requestID":"d71b1bc0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f/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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:30.863906155Z"}]},"request_id":"93fcd90e-7ee7-496d-90ba-aa7fd6b192f0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.0612078} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"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":"7aa31d77-233a-4b4f-99d4-7cafefecaeb0"},{"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":"53b95860-5f62-4235-bfe1-b2b3684f337b"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"7b175f7c-f4ce-4f5e-adab-d4c49ebd4778"}]},"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":"43cb20ca7a32e7fa7fc55f8d9d52fef9"},"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":"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/8dcbdfbc-0e17-4471-abf9-b16602a5d20f"},{"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/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9? 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":"43cb20ca7a32e7fa7fc55f8d9d52fef9"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:33Z"} device-1 | {"level":"info","message":"GET /devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9? 200 13ms","method":"GET","requestID":"43cb20ca7a32e7fa7fc55f8d9d52fef9","responseTime":13,"status":200,"url":"/devices/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9?"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.084682,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382812,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxMn0.I7sKJYXMU9jibHb3u2jfqyjJrcFxYBR0IcBgG9WwW48"} 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":"d71cf080-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxM30.bwMkbYMQlHz-SiFV1JBMqh4z1KiWWqCcKMYtC6cD4xs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6e624e4d607749fdf23cb538f10f7117","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.90644,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382813,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxM30.bwMkbYMQlHz-SiFV1JBMqh4z1KiWWqCcKMYtC6cD4xs"} 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":"6e624e4d607749fdf23cb538f10f7117"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"4a4afdab-b012-4787-af8d-8b14b2f6269d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.080705} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3ba60ac1-555d-45a0-9822-4a8358a2d3b9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.081038} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8dcbdfbc-0e17-4471-abf9-b16602a5d20f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8dcbdfbc-0e17-4471-abf9-b16602a5d20f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:30.919539608Z"}]},"request_id":"6bd995a4-3e5d-47d8-a662-82e4d62aa3c2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.0815485} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e624e4d607749fdf23cb538f10f7117"},"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 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":"d71cf080-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f? 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":"6e624e4d607749fdf23cb538f10f7117"} device-1 | {"level":"info","message":"GET /devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f? 200 14ms","method":"GET","requestID":"6e624e4d607749fdf23cb538f10f7117","responseTime":14,"status":200,"url":"/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f?"} 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/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 32ms","method":"POST","requestID":"d71cf080-2a6b-11ef-8ad5-3d996a2c698c","responseTime":32,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9d0664d5-7b34-4e4b-aadc-dcddc9ac7038","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2067ffd58fa3653f01e49e4949e49edc","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f"},{"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/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"2067ffd58fa3653f01e49e4949e49edc","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"2067ffd58fa3653f01e49e4949e49edc"} device-1 | {"data":{"peerconnection":"9d0664d5-7b34-4e4b-aadc-dcddc9ac7038","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"9d0664d5-7b34-4e4b-aadc-dcddc9ac7038","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/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9d0664d5-7b34-4e4b-aadc-dcddc9ac7038","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e10779461228acb11c490fcbc0d45b81","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/8dcbdfbc-0e17-4471-abf9-b16602a5d20f"},{"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/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9d0664d5-7b34-4e4b-aadc-dcddc9ac7038","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e5f8a3a0-bfa6-4898-8d46-1a316c9c9085","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.3252566} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.061772,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038","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":"d7440080-2a6b-11ef-8ad5-3d996a2c698c"},"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/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038 200 10ms","method":"GET","requestID":"d7440080-2a6b-11ef-8ad5-3d996a2c698c","responseTime":10,"status":200,"url":"/peerconnections/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 37ms","method":"POST","requestID":"e10779461228acb11c490fcbc0d45b81","responseTime":37,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.040","http_referrer":"","http_user_agent":"node-fetch","requestID":"e10779461228acb11c490fcbc0d45b81"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxM30.bwMkbYMQlHz-SiFV1JBMqh4z1KiWWqCcKMYtC6cD4xs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"93aecd6fb159685c5c20ae0fcbe4aab5","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.702391,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382813,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxM30.bwMkbYMQlHz-SiFV1JBMqh4z1KiWWqCcKMYtC6cD4xs"} 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":"93aecd6fb159685c5c20ae0fcbe4aab5"},"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/e52a18ee-871c-4541-b37a-62ba2cda02e6"} gateway-1 | {"time_local":"14/Jun/2024:16:33:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6 HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"93aecd6fb159685c5c20ae0fcbe4aab5"} experiment-1 | {"level":"info","message":"GET /experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6 200 9ms","method":"GET","requestID":"93aecd6fb159685c5c20ae0fcbe4aab5","responseTime":9,"status":200,"url":"/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxM30.bwMkbYMQlHz-SiFV1JBMqh4z1KiWWqCcKMYtC6cD4xs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b3674fcc9a791f3525f82f3f40f767ef","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.691287,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382813,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxM30.bwMkbYMQlHz-SiFV1JBMqh4z1KiWWqCcKMYtC6cD4xs"} 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":"b3674fcc9a791f3525f82f3f40f767ef"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.688505,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382813,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxM30.bwMkbYMQlHz-SiFV1JBMqh4z1KiWWqCcKMYtC6cD4xs"} 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":"d754f070-2a6b-11ef-8ad5-3d996a2c698c"},"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/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9d0664d5-7b34-4e4b-aadc-dcddc9ac7038","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9d0664d5-7b34-4e4b-aadc-dcddc9ac7038': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9d0664d5-7b34-4e4b-aadc-dcddc9ac7038","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"4a925831-5138-4db0-9b5d-e07578682b86","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.4453607} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d063efd5-073a-4191-ae3f-dfeb2d7dba93","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.4456615} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"aa0edf6df316cb8b2c387fd68b993fd3","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":"d754f070-2a6b-11ef-8ad5-3d996a2c698c"},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","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/8dcbdfbc-0e17-4471-abf9-b16602a5d20f"},{"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/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b1490387a61361015865007d1554a980","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f"},{"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/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"9d0664d5-7b34-4e4b-aadc-dcddc9ac7038","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/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038 204 33ms","method":"DELETE","requestID":"d754f070-2a6b-11ef-8ad5-3d996a2c698c","responseTime":33,"status":204,"url":"/peerconnections/9d0664d5-7b34-4e4b-aadc-dcddc9ac7038"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe52a18ee-871c-4541-b37a-62ba2cda02e6': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe52a18ee-871c-4541-b37a-62ba2cda02e6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"28e6e3d5-fe5b-41e6-954b-a7f43dae2e5c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.4865222} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b94b879a-d7e9-47f9-b64b-b67f4d9198b0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.486689} 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":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b3674fcc9a791f3525f82f3f40f767ef"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"} gateway-1 | {"time_local":"14/Jun/2024:16:33:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.114","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b3674fcc9a791f3525f82f3f40f767ef"} experiment-1 | {"level":"info","message":"DELETE /experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6 204 111ms","method":"DELETE","requestID":"b3674fcc9a791f3525f82f3f40f767ef","responseTime":111,"status":204,"url":"/experiments/e52a18ee-871c-4541-b37a-62ba2cda02e6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 89ms","method":"POST","requestID":"aa0edf6df316cb8b2c387fd68b993fd3","responseTime":89,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.093","http_referrer":"","http_user_agent":"node-fetch","requestID":"aa0edf6df316cb8b2c387fd68b993fd3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxM30.bwMkbYMQlHz-SiFV1JBMqh4z1KiWWqCcKMYtC6cD4xs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"14338fcf1935d16151a8b44026c13d23","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 93ms","method":"POST","requestID":"b1490387a61361015865007d1554a980","responseTime":93,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.097","http_referrer":"","http_user_agent":"node-fetch","requestID":"b1490387a61361015865007d1554a980"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.058366,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:33Z"} gateway-1 | {"time_local":"14/Jun/2024:16:33:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1691","request_time":"0.671","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"06cbd15dc5c81d74bf7e95bdabacafda"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382813,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxM30.bwMkbYMQlHz-SiFV1JBMqh4z1KiWWqCcKMYtC6cD4xs"} gateway-1 | {"time_local":"14/Jun/2024:16:33:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1958","request_time":"0.665","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2b4f819a5d804eb52805886b32614c39"} 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":"14338fcf1935d16151a8b44026c13d23"},"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/7870e8ad-8eb5-4aa8-9323-752ea2b7d7c9' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/8dcbdfbc-0e17-4471-abf9-b16602a5d20f' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2ae895b0-6b76-42ec-a5b1-4e7660fed34f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.5670068} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"14338fcf1935d16151a8b44026c13d23"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0ea6823c-abd6-45fb-9867-cd42aeb13729","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.5711792} 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":"14338fcf1935d16151a8b44026c13d23"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"8df25aac-848a-46e7-b028-372d3b34b6b2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.581054} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6f9899d6-38e2-4c0e-b431-337d65dee3f4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.581316} 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":"14338fcf1935d16151a8b44026c13d23"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:33.581034284Z"}]},"request_id":"52054ba1-c6e0-476c-838e-7bbc969c0441","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.5853229} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"14338fcf1935d16151a8b44026c13d23"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"14338fcf1935d16151a8b44026c13d23"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"14338fcf1935d16151a8b44026c13d23","responseTime":47,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxM30.bwMkbYMQlHz-SiFV1JBMqh4z1KiWWqCcKMYtC6cD4xs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"996efc0748fc62674b75f0bf5e0ef279","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.643618,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382813,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxM30.bwMkbYMQlHz-SiFV1JBMqh4z1KiWWqCcKMYtC6cD4xs"} 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":"996efc0748fc62674b75f0bf5e0ef279"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc04bede8-69c4-49de-ab9b-e639de19de5b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"faf0e15b-bca1-46c3-a604-4a87274ae992","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.60669} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"996efc0748fc62674b75f0bf5e0ef279"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f9415128-52a2-4664-b32c-f06749fdff74","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.610982} 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":"996efc0748fc62674b75f0bf5e0ef279"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc04bede8-69c4-49de-ab9b-e639de19de5b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"dcdd3ff0-35a1-46a2-81af-905acb5cc247","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.6194737} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7ad795b8-81b9-4a2f-bdd5-3c523d752225","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.6196568} 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":"996efc0748fc62674b75f0bf5e0ef279"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc04bede8-69c4-49de-ab9b-e639de19de5b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc04bede8-69c4-49de-ab9b-e639de19de5b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:33.619447174Z"}]},"request_id":"99a3abdb-7319-4513-9826-b9a9c9b18317","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382813.6232312} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"996efc0748fc62674b75f0bf5e0ef279"},"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 33ms","method":"POST","requestID":"996efc0748fc62674b75f0bf5e0ef279","responseTime":33,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"996efc0748fc62674b75f0bf5e0ef279"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"028bbb025000f4ae426294e3e2c1499d","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40/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":"028bbb025000f4ae426294e3e2c1499d"} device-1 | {"level":"info","message":"OPTIONS /devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40/websocket 200 1ms","method":"OPTIONS","requestID":"028bbb025000f4ae426294e3e2c1499d","responseTime":1,"status":200,"url":"/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"792d55ad0ae1712962dafcf5cf1e4505","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.695418,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382815,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk"} 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":"792d55ad0ae1712962dafcf5cf1e4505"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"1acb0f50765720f3d763e4cc301bf95e","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/c04bede8-69c4-49de-ab9b-e639de19de5b/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1acb0f50765720f3d763e4cc301bf95e"} device-1 | {"level":"info","message":"OPTIONS /devices/c04bede8-69c4-49de-ab9b-e639de19de5b/websocket 200 0ms","method":"OPTIONS","requestID":"1acb0f50765720f3d763e4cc301bf95e","responseTime":0,"status":200,"url":"/devices/c04bede8-69c4-49de-ab9b-e639de19de5b/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.019","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"792d55ad0ae1712962dafcf5cf1e4505"} device-1 | {"level":"info","message":"POST /devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40/websocket 200 15ms","method":"POST","requestID":"792d55ad0ae1712962dafcf5cf1e4505","responseTime":15,"status":200,"url":"/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a3dc0b907be5cf74ded1320614a5edbc","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.869871,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c04bede8-69c4-49de-ab9b-e639de19de5b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/c04bede8-69c4-49de-ab9b-e639de19de5b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382815,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk"} 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":"a3dc0b907be5cf74ded1320614a5edbc"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"device 'http://localhost/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/c04bede8-69c4-49de-ab9b-e639de19de5b/websocket 200 25ms","method":"POST","requestID":"a3dc0b907be5cf74ded1320614a5edbc","responseTime":25,"status":200,"url":"/devices/c04bede8-69c4-49de-ab9b-e639de19de5b/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:33:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c04bede8-69c4-49de-ab9b-e639de19de5b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.028","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a3dc0b907be5cf74ded1320614a5edbc"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c04bede8-69c4-49de-ab9b-e639de19de5b' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"74d5a8f75a048ade8cd6b6899ba8373f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.919188,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382815,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk"} 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":"74d5a8f75a048ade8cd6b6899ba8373f"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:33.581034284Z"}]},"request_id":"3ffd50f6-31ca-4e19-843c-2895bc346293","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382815.5998557} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"74d5a8f75a048ade8cd6b6899ba8373f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40? 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":"74d5a8f75a048ade8cd6b6899ba8373f"} device-1 | {"level":"info","message":"GET /devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40? 200 12ms","method":"GET","requestID":"74d5a8f75a048ade8cd6b6899ba8373f","responseTime":12,"status":200,"url":"/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ceddce2dbed52a77c5e08ae4fe4cb2c9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650969,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c04bede8-69c4-49de-ab9b-e639de19de5b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/c04bede8-69c4-49de-ab9b-e639de19de5b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382815,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk"} 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":"ceddce2dbed52a77c5e08ae4fe4cb2c9"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc04bede8-69c4-49de-ab9b-e639de19de5b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc04bede8-69c4-49de-ab9b-e639de19de5b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:33.619447174Z"}]},"request_id":"ff3bc564-6508-43e0-815c-5d6768d00b2b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382815.6148944} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ceddce2dbed52a77c5e08ae4fe4cb2c9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c04bede8-69c4-49de-ab9b-e639de19de5b? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ceddce2dbed52a77c5e08ae4fe4cb2c9"} device-1 | {"level":"info","message":"GET /devices/c04bede8-69c4-49de-ab9b-e639de19de5b? 200 10ms","method":"GET","requestID":"ceddce2dbed52a77c5e08ae4fe4cb2c9","responseTime":10,"status":200,"url":"/devices/c04bede8-69c4-49de-ab9b-e639de19de5b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2cef4ac93e4534f14a96f5891403e30b","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:48592","level":"info","msg":"Received request.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.902161,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382815,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk"} 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":"2cef4ac93e4534f14a96f5891403e30b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"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:48592","level":"info","msg":"Received request.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.957829,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382815,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk"} 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":"d8a89990-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.722014,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c04bede8-69c4-49de-ab9b-e639de19de5b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/c04bede8-69c4-49de-ab9b-e639de19de5b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382815,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk"} 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":"d8a8c0a0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:33.581034284Z"}]},"request_id":"ba566cb7-d30c-4d87-8253-916ff46f7487","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382815.6652274} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d8a89990-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc04bede8-69c4-49de-ab9b-e639de19de5b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc04bede8-69c4-49de-ab9b-e639de19de5b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:33.619447174Z"}]},"request_id":"62a963bf-b86b-46cf-bcbf-3eb8d8f1f624","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382815.6659596} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d8a8c0a0-2a6b-11ef-8ad5-3d996a2c698c"},"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/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40? 200 12ms","method":"GET","requestID":"d8a89990-2a6b-11ef-8ad5-3d996a2c698c","responseTime":12,"status":200,"url":"/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/c04bede8-69c4-49de-ab9b-e639de19de5b? 200 12ms","method":"GET","requestID":"d8a8c0a0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":12,"status":200,"url":"/devices/c04bede8-69c4-49de-ab9b-e639de19de5b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"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/fcbe9e43-c158-4dec-983e-363e11994d53"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.728971,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382815,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d8b013a0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.949277,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c04bede8-69c4-49de-ab9b-e639de19de5b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/c04bede8-69c4-49de-ab9b-e639de19de5b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382815,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk"} 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":"d8b03ab0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:33.581034284Z"}]},"request_id":"d421b741-4378-43da-af05-a9afdf093a27","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382815.716671} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d8b013a0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc04bede8-69c4-49de-ab9b-e639de19de5b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc04bede8-69c4-49de-ab9b-e639de19de5b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:33.619447174Z"}]},"request_id":"62f2c60c-48d4-47f7-ba77-ddda9e810596","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382815.718132} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d8b03ab0-2a6b-11ef-8ad5-3d996a2c698c"},"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/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40? 200 17ms","method":"GET","requestID":"d8b013a0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":17,"status":200,"url":"/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/c04bede8-69c4-49de-ab9b-e639de19de5b? 200 17ms","method":"GET","requestID":"d8b03ab0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":17,"status":200,"url":"/devices/c04bede8-69c4-49de-ab9b-e639de19de5b?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.844559,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d8b320e0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffcbe9e43-c158-4dec-983e-363e11994d53#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffcbe9e43-c158-4dec-983e-363e11994d53","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"d06fee75-7ea1-4a32-a8fe-ffee8793ed40","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382815.732365} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7107ec43-7850-4d26-835d-5af00d347695","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382815.7326667} device-1 | {"level":"info","message":"POST /devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40/signaling 200 12ms","method":"POST","requestID":"d8b320e0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":12,"status":200,"url":"/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40/signaling"} 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":"2cef4ac93e4534f14a96f5891403e30b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":27}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 124ms","method":"POST","requestID":"2cef4ac93e4534f14a96f5891403e30b","responseTime":124,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.129","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2cef4ac93e4534f14a96f5891403e30b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9d57963ecfc0aaea06f43c91efe66ad9","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.933391,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/c04bede8-69c4-49de-ab9b-e639de19de5b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c04bede8-69c4-49de-ab9b-e639de19de5b","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d8b543c0-2a6b-11ef-8ad5-3d996a2c698c"},"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/c04bede8-69c4-49de-ab9b-e639de19de5b/signaling 200 21ms","method":"POST","requestID":"d8b543c0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":21,"status":200,"url":"/devices/c04bede8-69c4-49de-ab9b-e639de19de5b/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"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":"9395fd4c-e986-4837-856c-ba963a43dc99"},{"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":"5f4694d7-3fa5-4889-a848-0cd8d682b8a7"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"35ea114a-924e-4c28-8f1d-be9a35354193"}]},"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/c04bede8-69c4-49de-ab9b-e639de19de5b"},{"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/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.868799,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382815,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9d57963ecfc0aaea06f43c91efe66ad9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.850627,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382815,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk"} 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":"d8b93b60-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d1a5aaa-ca89-49b8-9b83-f72354ea6e40","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:33.581034284Z"}]},"request_id":"57ec33b0-aa56-46ba-9bfd-72863ce528b4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382815.7732542} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9d57963ecfc0aaea06f43c91efe66ad9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40? 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":"9d57963ecfc0aaea06f43c91efe66ad9"} device-1 | {"level":"info","message":"GET /devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40? 200 24ms","method":"GET","requestID":"9d57963ecfc0aaea06f43c91efe66ad9","responseTime":24,"status":200,"url":"/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ac3bd0da609d5e575024e80f1333f033","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"0b2bc0bf-b8dd-4ec4-8836-1c6be35e35f1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382815.785192} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c155112d-b4bc-4d34-ae31-b4676306be10","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382815.7853503} 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":"d8b93b60-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.739869,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c04bede8-69c4-49de-ab9b-e639de19de5b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/c04bede8-69c4-49de-ab9b-e639de19de5b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382815,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNX0._6KB4VyVXCjNH1R_l10xCSvOVkXT3eDR2paL0OqkyYk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ac3bd0da609d5e575024e80f1333f033"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc04bede8-69c4-49de-ab9b-e639de19de5b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc04bede8-69c4-49de-ab9b-e639de19de5b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:33.619447174Z"}]},"request_id":"c8bc8e46-4ed6-4b91-9726-b217fcd3ef58","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382815.7923884} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ac3bd0da609d5e575024e80f1333f033"},"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/54517384-9659-4365-9f6b-3a7ddabb4bbc'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/54517384-9659-4365-9f6b-3a7ddabb4bbc'"} 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":"d8b93b60-2a6b-11ef-8ad5-3d996a2c698c","responseTime":37,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c04bede8-69c4-49de-ab9b-e639de19de5b? 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":"ac3bd0da609d5e575024e80f1333f033"} device-1 | {"level":"info","message":"GET /devices/c04bede8-69c4-49de-ab9b-e639de19de5b? 200 21ms","method":"GET","requestID":"ac3bd0da609d5e575024e80f1333f033","responseTime":21,"status":200,"url":"/devices/c04bede8-69c4-49de-ab9b-e639de19de5b?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/54517384-9659-4365-9f6b-3a7ddabb4bbc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"54517384-9659-4365-9f6b-3a7ddabb4bbc","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} 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/c04bede8-69c4-49de-ab9b-e639de19de5b"},{"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/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/54517384-9659-4365-9f6b-3a7ddabb4bbc"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"241b6ac5a85be517dfd01b843418b431","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"241b6ac5a85be517dfd01b843418b431","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"241b6ac5a85be517dfd01b843418b431"} device-1 | {"data":{"peerconnection":"54517384-9659-4365-9f6b-3a7ddabb4bbc","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"54517384-9659-4365-9f6b-3a7ddabb4bbc","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/54517384-9659-4365-9f6b-3a7ddabb4bbc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"54517384-9659-4365-9f6b-3a7ddabb4bbc","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2aaeb907550e098ca0be57dc0ae204bf","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/c04bede8-69c4-49de-ab9b-e639de19de5b"},{"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/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/54517384-9659-4365-9f6b-3a7ddabb4bbc"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F54517384-9659-4365-9f6b-3a7ddabb4bbc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3dd114a5-8173-4e4f-b2f7-14f2057adaa1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.0515974} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.353214,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/54517384-9659-4365-9f6b-3a7ddabb4bbc","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/54517384-9659-4365-9f6b-3a7ddabb4bbc","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":"d8e41bf0-2a6b-11ef-8ad5-3d996a2c698c"},"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/54517384-9659-4365-9f6b-3a7ddabb4bbc 200 8ms","method":"GET","requestID":"d8e41bf0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/peerconnections/54517384-9659-4365-9f6b-3a7ddabb4bbc"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 26ms","method":"POST","requestID":"2aaeb907550e098ca0be57dc0ae204bf","responseTime":26,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.030","http_referrer":"","http_user_agent":"node-fetch","requestID":"2aaeb907550e098ca0be57dc0ae204bf"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNn0.CTvfJ3-XoggrFdzjph8Jh0oKdKJDJiNavlKzchM8dfY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a44a0cda31b1c3a688284596c98b6489","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/fcbe9e43-c158-4dec-983e-363e11994d53"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.66251,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382816,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNn0.CTvfJ3-XoggrFdzjph8Jh0oKdKJDJiNavlKzchM8dfY"} 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":"a44a0cda31b1c3a688284596c98b6489"},"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/fcbe9e43-c158-4dec-983e-363e11994d53"} experiment-1 | {"level":"info","message":"GET /experiments/fcbe9e43-c158-4dec-983e-363e11994d53 200 11ms","method":"GET","requestID":"a44a0cda31b1c3a688284596c98b6489","responseTime":11,"status":200,"url":"/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"} gateway-1 | {"time_local":"14/Jun/2024:16:33:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/fcbe9e43-c158-4dec-983e-363e11994d53 HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a44a0cda31b1c3a688284596c98b6489"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNn0.CTvfJ3-XoggrFdzjph8Jh0oKdKJDJiNavlKzchM8dfY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b7b5ba6ac8c05dfdfbb54bd27efdd8b1","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/fcbe9e43-c158-4dec-983e-363e11994d53"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.661969,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382816,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNn0.CTvfJ3-XoggrFdzjph8Jh0oKdKJDJiNavlKzchM8dfY"} 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":"b7b5ba6ac8c05dfdfbb54bd27efdd8b1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.686261,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/54517384-9659-4365-9f6b-3a7ddabb4bbc","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/54517384-9659-4365-9f6b-3a7ddabb4bbc","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382816,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNn0.CTvfJ3-XoggrFdzjph8Jh0oKdKJDJiNavlKzchM8dfY"} 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":"d8f4bdc0-2a6b-11ef-8ad5-3d996a2c698c"},"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/54517384-9659-4365-9f6b-3a7ddabb4bbc' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/54517384-9659-4365-9f6b-3a7ddabb4bbc' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"54517384-9659-4365-9f6b-3a7ddabb4bbc","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"776f7aa82a19f7fe4395855d6bad5120","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F54517384-9659-4365-9f6b-3a7ddabb4bbc': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F54517384-9659-4365-9f6b-3a7ddabb4bbc","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"f129d066-0727-49d8-8a7d-0c131aa470af","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.1738062} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","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/c04bede8-69c4-49de-ab9b-e639de19de5b"},{"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/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/54517384-9659-4365-9f6b-3a7ddabb4bbc"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1827123e74eb3459d9ac70308a7db493","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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b001e120-bbb5-4849-8e9b-fb954d2efddd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.1747217} 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/c04bede8-69c4-49de-ab9b-e639de19de5b"},{"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/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/54517384-9659-4365-9f6b-3a7ddabb4bbc"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d8f4bdc0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"data":{"peerconnection":"54517384-9659-4365-9f6b-3a7ddabb4bbc","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/54517384-9659-4365-9f6b-3a7ddabb4bbc 204 36ms","method":"DELETE","requestID":"d8f4bdc0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":36,"status":204,"url":"/peerconnections/54517384-9659-4365-9f6b-3a7ddabb4bbc"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffcbe9e43-c158-4dec-983e-363e11994d53': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffcbe9e43-c158-4dec-983e-363e11994d53","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"71222915-4747-4091-adea-f29ac8289b9d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.2218587} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c544e6fb-8910-4423-997b-67f3344896d3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.2221477} 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":"b7b5ba6ac8c05dfdfbb54bd27efdd8b1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/fcbe9e43-c158-4dec-983e-363e11994d53"} gateway-1 | {"time_local":"14/Jun/2024:16:33:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/fcbe9e43-c158-4dec-983e-363e11994d53 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.128","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b7b5ba6ac8c05dfdfbb54bd27efdd8b1"} experiment-1 | {"level":"info","message":"DELETE /experiments/fcbe9e43-c158-4dec-983e-363e11994d53 204 126ms","method":"DELETE","requestID":"b7b5ba6ac8c05dfdfbb54bd27efdd8b1","responseTime":126,"status":204,"url":"/experiments/fcbe9e43-c158-4dec-983e-363e11994d53"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 102ms","method":"POST","requestID":"776f7aa82a19f7fe4395855d6bad5120","responseTime":102,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 101ms","method":"POST","requestID":"1827123e74eb3459d9ac70308a7db493","responseTime":101,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.105","http_referrer":"","http_user_agent":"node-fetch","requestID":"776f7aa82a19f7fe4395855d6bad5120"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.107","http_referrer":"","http_user_agent":"node-fetch","requestID":"1827123e74eb3459d9ac70308a7db493"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNn0.CTvfJ3-XoggrFdzjph8Jh0oKdKJDJiNavlKzchM8dfY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"cd5cf9832e8d5016db8fa0c8a3389f2c","responseTime":5,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1690","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":"e8a3e9e631449d84955f9c43d19743e0"} gateway-1 | {"time_local":"14/Jun/2024:16:33:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1958","request_time":"0.707","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8184f92bbe2275ba15d2649146075dd6"} device-1 | {"level":"info","message":"postDevices called"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/c04bede8-69c4-49de-ab9b-e639de19de5b' closed"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.860036,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382816,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNn0.CTvfJ3-XoggrFdzjph8Jh0oKdKJDJiNavlKzchM8dfY"} 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":"cd5cf9832e8d5016db8fa0c8a3389f2c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0d1a5aaa-ca89-49b8-9b83-f72354ea6e40' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07efa46b-c3a4-49d8-899c-fbe47cd8914c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7c134499-11a3-423f-9a25-0dcf27c5ec95","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.3096979} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd5cf9832e8d5016db8fa0c8a3389f2c"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e2fa9438-1450-4dd7-9d62-0dcc792c1034","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.3148093} 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":"cd5cf9832e8d5016db8fa0c8a3389f2c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07efa46b-c3a4-49d8-899c-fbe47cd8914c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"1e0e7096-a85a-4a2d-884d-85c9b17c9069","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.325336} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5f472a1b-a07b-436f-92df-9396347d85f3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.3255591} 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":"cd5cf9832e8d5016db8fa0c8a3389f2c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07efa46b-c3a4-49d8-899c-fbe47cd8914c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07efa46b-c3a4-49d8-899c-fbe47cd8914c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:36.325302032Z"}]},"request_id":"ad42eb0d-8594-473d-ad07-b4401049b7a4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.3293605} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd5cf9832e8d5016db8fa0c8a3389f2c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.058","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cd5cf9832e8d5016db8fa0c8a3389f2c"} device-1 | {"level":"info","message":"POST /devices? 201 52ms","method":"POST","requestID":"cd5cf9832e8d5016db8fa0c8a3389f2c","responseTime":52,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNn0.CTvfJ3-XoggrFdzjph8Jh0oKdKJDJiNavlKzchM8dfY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e4f097bc2f244fa2cf0a42f305702e69","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.903113,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382816,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNn0.CTvfJ3-XoggrFdzjph8Jh0oKdKJDJiNavlKzchM8dfY"} 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":"e4f097bc2f244fa2cf0a42f305702e69"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"cd2ab09d-cbb4-4757-a63b-471c0969c7e0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.3522818} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4f097bc2f244fa2cf0a42f305702e69"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"39ed1aec-cb85-4055-ac90-83070a8cf9ed","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.357298} 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":"e4f097bc2f244fa2cf0a42f305702e69"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"912d524c-7e0d-4365-82b9-ba60617e3750","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.3670912} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8f94c3e4-0621-49db-8a02-2bb7191878f5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.367243} 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":"e4f097bc2f244fa2cf0a42f305702e69"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:36.367071178Z"}]},"request_id":"a697a053-c4f3-4672-92a5-feea89beb332","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.3715436} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e4f097bc2f244fa2cf0a42f305702e69"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:36 +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":"e4f097bc2f244fa2cf0a42f305702e69"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"e4f097bc2f244fa2cf0a42f305702e69","responseTime":37,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNn0.CTvfJ3-XoggrFdzjph8Jh0oKdKJDJiNavlKzchM8dfY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d58435cad08427863090ba3bfeafd6d7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.653327,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382816,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNn0.CTvfJ3-XoggrFdzjph8Jh0oKdKJDJiNavlKzchM8dfY"} 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":"d58435cad08427863090ba3bfeafd6d7"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:36.367071178Z"}]},"request_id":"a18034d4-1800-48fe-9551-ae63c6e9a4f0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.8775249} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d58435cad08427863090ba3bfeafd6d7"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fd9ff30c-f558-4af1-be71-91915ae942c5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.8828344} 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":"d58435cad08427863090ba3bfeafd6d7"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:36.367071178Z"}]},"request_id":"c94f961d-7b60-4c2d-8826-f4f54548adb4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382816.8944094} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d58435cad08427863090ba3bfeafd6d7"},"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/69b510e9-1034-4b09-a54d-2219c8d62a90 200 28ms","method":"PATCH","requestID":"d58435cad08427863090ba3bfeafd6d7","responseTime":28,"status":200,"url":"/devices/69b510e9-1034-4b09-a54d-2219c8d62a90"} gateway-1 | {"time_local":"14/Jun/2024:16:33:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/69b510e9-1034-4b09-a54d-2219c8d62a90 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.032","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d58435cad08427863090ba3bfeafd6d7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNn0.CTvfJ3-XoggrFdzjph8Jh0oKdKJDJiNavlKzchM8dfY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d47c9651e6652292f24b4a7aa728fd7e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.991842,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382816,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxNn0.CTvfJ3-XoggrFdzjph8Jh0oKdKJDJiNavlKzchM8dfY"} 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":"d47c9651e6652292f24b4a7aa728fd7e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/69b510e9-1034-4b09-a54d-2219c8d62a90/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.018","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d47c9651e6652292f24b4a7aa728fd7e"} device-1 | {"level":"info","message":"POST /devices/69b510e9-1034-4b09-a54d-2219c8d62a90/websocket 200 14ms","method":"POST","requestID":"d47c9651e6652292f24b4a7aa728fd7e","responseTime":14,"status":200,"url":"/devices/69b510e9-1034-4b09-a54d-2219c8d62a90/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5e7bb609de10ff84cc36aa8938d4fc9f","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5e7bb609de10ff84cc36aa8938d4fc9f"} device-1 | {"level":"info","message":"OPTIONS /devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c/websocket 200 0ms","method":"OPTIONS","requestID":"5e7bb609de10ff84cc36aa8938d4fc9f","responseTime":0,"status":200,"url":"/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"06d6bc86b8eb7c48199a2d5044885619","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.739622,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} 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":"06d6bc86b8eb7c48199a2d5044885619"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.022","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"06d6bc86b8eb7c48199a2d5044885619"} device-1 | {"level":"info","message":"POST /devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c/websocket 200 18ms","method":"POST","requestID":"06d6bc86b8eb7c48199a2d5044885619","responseTime":18,"status":200,"url":"/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"337ba6fd09cd81008240e51753c4dceb","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.736845,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} 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":"337ba6fd09cd81008240e51753c4dceb"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07efa46b-c3a4-49d8-899c-fbe47cd8914c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07efa46b-c3a4-49d8-899c-fbe47cd8914c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:36.325302032Z"}]},"request_id":"255ffd34-2cf4-4fe8-b77b-5b0c01c8e48b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.3704667} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"337ba6fd09cd81008240e51753c4dceb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c? 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":"337ba6fd09cd81008240e51753c4dceb"} device-1 | {"level":"info","message":"GET /devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c? 200 10ms","method":"GET","requestID":"337ba6fd09cd81008240e51753c4dceb","responseTime":10,"status":200,"url":"/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"90614c8ac205bdccc03d55a8619eae56","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.628353,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} 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":"90614c8ac205bdccc03d55a8619eae56"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:36.367071178Z"}]},"request_id":"cc486d26-9d8a-431b-b7f8-f6a22d7581c2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.3847597} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"90614c8ac205bdccc03d55a8619eae56"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/69b510e9-1034-4b09-a54d-2219c8d62a90? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"90614c8ac205bdccc03d55a8619eae56"} device-1 | {"level":"info","message":"GET /devices/69b510e9-1034-4b09-a54d-2219c8d62a90? 200 10ms","method":"GET","requestID":"90614c8ac205bdccc03d55a8619eae56","responseTime":10,"status":200,"url":"/devices/69b510e9-1034-4b09-a54d-2219c8d62a90?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"81a5ff33f61064fce6db20ba9cb645b1","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:48592","level":"info","msg":"Received request.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.724552,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} 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":"81a5ff33f61064fce6db20ba9cb645b1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"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:48592","level":"info","msg":"Received request.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.653461,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} 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":"da4f92d0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.603035,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} 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":"da4fb9e0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07efa46b-c3a4-49d8-899c-fbe47cd8914c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07efa46b-c3a4-49d8-899c-fbe47cd8914c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:36.325302032Z"}]},"request_id":"bd3534bc-3105-4473-a28d-f446abcfcd7f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.4365864} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da4f92d0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:36.367071178Z"}]},"request_id":"545a81be-e716-4928-8e34-3581223e9d8d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.4372864} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da4fb9e0-2a6b-11ef-8ad5-3d996a2c698c"},"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/07efa46b-c3a4-49d8-899c-fbe47cd8914c? 200 14ms","method":"GET","requestID":"da4f92d0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/69b510e9-1034-4b09-a54d-2219c8d62a90? 200 14ms","method":"GET","requestID":"da4fb9e0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/69b510e9-1034-4b09-a54d-2219c8d62a90?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"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/91549eb0-19dd-437c-be33-c8694c75cb1e"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.648324,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da597de0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.764875,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da59a4f0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07efa46b-c3a4-49d8-899c-fbe47cd8914c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07efa46b-c3a4-49d8-899c-fbe47cd8914c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:36.325302032Z"}]},"request_id":"a97d1cc9-6da9-41f7-bf27-36d94d2cf681","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.5057337} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da597de0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:36.367071178Z"}]},"request_id":"f8a4d0fb-2a6c-45ab-b2fe-711f9d942073","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.506913} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da59a4f0-2a6b-11ef-8ad5-3d996a2c698c"},"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/07efa46b-c3a4-49d8-899c-fbe47cd8914c? 200 17ms","method":"GET","requestID":"da597de0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":17,"status":200,"url":"/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/69b510e9-1034-4b09-a54d-2219c8d62a90? 200 18ms","method":"GET","requestID":"da59a4f0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":18,"status":200,"url":"/devices/69b510e9-1034-4b09-a54d-2219c8d62a90?"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F91549eb0-19dd-437c-be33-c8694c75cb1e#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F91549eb0-19dd-437c-be33-c8694c75cb1e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"5a3b908f-a7d6-4300-afc8-f23c64842c9a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.5151477} 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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d0e6b93e-f20f-4489-bba8-bfae0b17a891","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.515495} 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":"81a5ff33f61064fce6db20ba9cb645b1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.936629,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da5cb230-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:33:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.134","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"81a5ff33f61064fce6db20ba9cb645b1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} experiment-1 | {"level":"info","message":"POST /experiments? 201 130ms","method":"POST","requestID":"81a5ff33f61064fce6db20ba9cb645b1","responseTime":130,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"POST /devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c/signaling 200 9ms","method":"POST","requestID":"da5cb230-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"139248f133834032ed7abf149b36c097","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.798824,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"da5e5fe0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.638222,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"139248f133834032ed7abf149b36c097"},"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/69b510e9-1034-4b09-a54d-2219c8d62a90/signaling 200 11ms","method":"POST","requestID":"da5e5fe0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":11,"status":200,"url":"/devices/69b510e9-1034-4b09-a54d-2219c8d62a90/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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07efa46b-c3a4-49d8-899c-fbe47cd8914c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07efa46b-c3a4-49d8-899c-fbe47cd8914c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:36.325302032Z"}]},"request_id":"473d8246-7dfe-4292-b464-e65eef28a071","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.5373116} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"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":"4fa9edd3-0bb2-4d2b-9e64-afcf6e289039"},{"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":"c72d7bb4-7b87-455f-b6e8-e6bbcf7e287e"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"8a091158-11a7-4042-8da3-659d7edc7d36"}]},"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":"139248f133834032ed7abf149b36c097"},"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/07efa46b-c3a4-49d8-899c-fbe47cd8914c"},{"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/69b510e9-1034-4b09-a54d-2219c8d62a90"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"139248f133834032ed7abf149b36c097"} device-1 | {"level":"info","message":"GET /devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c? 200 14ms","method":"GET","requestID":"139248f133834032ed7abf149b36c097","responseTime":14,"status":200,"url":"/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c?"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.729199,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} 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":"da6082c0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"95a974fbd33638515960db6b52d232f4","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.692534,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} 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":"95a974fbd33638515960db6b52d232f4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"a42297b5-40b0-4d16-9781-471bf393dec5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.5548751} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a21bf103-33f3-450e-b91f-366958d5e361","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.5551617} 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":"da6082c0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69b510e9-1034-4b09-a54d-2219c8d62a90","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:36.367071178Z"}]},"request_id":"5beddba4-ce76-4301-b604-c926c6a5122e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.5562565} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"95a974fbd33638515960db6b52d232f4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/69b510e9-1034-4b09-a54d-2219c8d62a90? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"95a974fbd33638515960db6b52d232f4"} device-1 | {"level":"info","message":"GET /devices/69b510e9-1034-4b09-a54d-2219c8d62a90? 200 21ms","method":"GET","requestID":"95a974fbd33638515960db6b52d232f4","responseTime":21,"status":200,"url":"/devices/69b510e9-1034-4b09-a54d-2219c8d62a90?"} 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/b825ebf7-9fbf-44ff-910e-6378a1ed5011'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/b825ebf7-9fbf-44ff-910e-6378a1ed5011'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 30ms","method":"POST","requestID":"da6082c0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":30,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"b825ebf7-9fbf-44ff-910e-6378a1ed5011","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b825ebf7-9fbf-44ff-910e-6378a1ed5011' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b825ebf7-9fbf-44ff-910e-6378a1ed5011","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e6e8d0fec9d8513e48a27f1e65ad62e8","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/07efa46b-c3a4-49d8-899c-fbe47cd8914c"},{"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/69b510e9-1034-4b09-a54d-2219c8d62a90"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/b825ebf7-9fbf-44ff-910e-6378a1ed5011"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"e6e8d0fec9d8513e48a27f1e65ad62e8","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"e6e8d0fec9d8513e48a27f1e65ad62e8"} device-1 | {"data":{"peerconnection":"b825ebf7-9fbf-44ff-910e-6378a1ed5011","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"b825ebf7-9fbf-44ff-910e-6378a1ed5011","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/b825ebf7-9fbf-44ff-910e-6378a1ed5011' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b825ebf7-9fbf-44ff-910e-6378a1ed5011","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1696bd25d4803329d99fc480c5bb6cc2","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/07efa46b-c3a4-49d8-899c-fbe47cd8914c"},{"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/69b510e9-1034-4b09-a54d-2219c8d62a90"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/b825ebf7-9fbf-44ff-910e-6378a1ed5011"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb825ebf7-9fbf-44ff-910e-6378a1ed5011","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3e4320ca-330a-4840-888d-4865f3e93f17","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.699434} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.496176,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b825ebf7-9fbf-44ff-910e-6378a1ed5011","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/b825ebf7-9fbf-44ff-910e-6378a1ed5011","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":"da780260-2a6b-11ef-8ad5-3d996a2c698c"},"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/b825ebf7-9fbf-44ff-910e-6378a1ed5011 200 9ms","method":"GET","requestID":"da780260-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/peerconnections/b825ebf7-9fbf-44ff-910e-6378a1ed5011"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"1696bd25d4803329d99fc480c5bb6cc2","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.030","http_referrer":"","http_user_agent":"node-fetch","requestID":"1696bd25d4803329d99fc480c5bb6cc2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6cf00433c88ed702dd6f5309ef9f5de4","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.705164,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} 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":"6cf00433c88ed702dd6f5309ef9f5de4"},"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/91549eb0-19dd-437c-be33-c8694c75cb1e"} gateway-1 | {"time_local":"14/Jun/2024:16:33:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/91549eb0-19dd-437c-be33-c8694c75cb1e HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6cf00433c88ed702dd6f5309ef9f5de4"} experiment-1 | {"level":"info","message":"GET /experiments/91549eb0-19dd-437c-be33-c8694c75cb1e 200 9ms","method":"GET","requestID":"6cf00433c88ed702dd6f5309ef9f5de4","responseTime":9,"status":200,"url":"/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"89326930431daeebec7e7e4fd3c03d2a","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.320647,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} 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":"89326930431daeebec7e7e4fd3c03d2a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.944649,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:38Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b825ebf7-9fbf-44ff-910e-6378a1ed5011","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/b825ebf7-9fbf-44ff-910e-6378a1ed5011","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} 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":"da89dcb0-2a6b-11ef-8ad5-3d996a2c698c"},"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/b825ebf7-9fbf-44ff-910e-6378a1ed5011' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/b825ebf7-9fbf-44ff-910e-6378a1ed5011' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b825ebf7-9fbf-44ff-910e-6378a1ed5011","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1de2ff3d58cf54f75a22abde8fff4383","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb825ebf7-9fbf-44ff-910e-6378a1ed5011': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb825ebf7-9fbf-44ff-910e-6378a1ed5011","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"5aa1e2df-0a65-4f08-b6fe-7cdc47a296cc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.8278794} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4c396bee-dae8-4465-9842-0c279adfcd00","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.8282218} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c"},{"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/69b510e9-1034-4b09-a54d-2219c8d62a90"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b825ebf7-9fbf-44ff-910e-6378a1ed5011"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"be0595832dbb38294075ce23ae74fcf7","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":"da89dcb0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"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/07efa46b-c3a4-49d8-899c-fbe47cd8914c"},{"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/69b510e9-1034-4b09-a54d-2219c8d62a90"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b825ebf7-9fbf-44ff-910e-6378a1ed5011"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/b825ebf7-9fbf-44ff-910e-6378a1ed5011 204 38ms","method":"DELETE","requestID":"da89dcb0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":38,"status":204,"url":"/peerconnections/b825ebf7-9fbf-44ff-910e-6378a1ed5011"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F91549eb0-19dd-437c-be33-c8694c75cb1e': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F91549eb0-19dd-437c-be33-c8694c75cb1e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"0156dd2c-c7d1-4681-ba4a-c5cc1680717a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.8775697} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a31eefe7-bf97-4147-bf5f-25f870b2cdf5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382818.8777764} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"89326930431daeebec7e7e4fd3c03d2a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"} gateway-1 | {"time_local":"14/Jun/2024:16:33:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/91549eb0-19dd-437c-be33-c8694c75cb1e 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":"89326930431daeebec7e7e4fd3c03d2a"} gateway-1 | {"time_local":"14/Jun/2024:16:33:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1640","request_time":"2.076","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"a9d166bf5e67f14f718a8f2180707894"} experiment-1 | {"level":"info","message":"DELETE /experiments/91549eb0-19dd-437c-be33-c8694c75cb1e 204 194ms","method":"DELETE","requestID":"89326930431daeebec7e7e4fd3c03d2a","responseTime":194,"status":204,"url":"/experiments/91549eb0-19dd-437c-be33-c8694c75cb1e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ccc5803ad88b511451ec3cc49e21f0e8","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 169ms","method":"POST","requestID":"1de2ff3d58cf54f75a22abde8fff4383","responseTime":169,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.174","http_referrer":"","http_user_agent":"node-fetch","requestID":"1de2ff3d58cf54f75a22abde8fff4383"} device-1 | {"level":"info","message":"postDevices called"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 171ms","method":"POST","requestID":"be0595832dbb38294075ce23ae74fcf7","responseTime":171,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.175","http_referrer":"","http_user_agent":"node-fetch","requestID":"be0595832dbb38294075ce23ae74fcf7"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/69b510e9-1034-4b09-a54d-2219c8d62a90' closed"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:39Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.301795,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382818,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOH0.MOUX_aLDgDK8vX-BJSAA6WA06XU1uf7LHeyZJg0tU4Q"} 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":"ccc5803ad88b511451ec3cc49e21f0e8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} gateway-1 | {"time_local":"14/Jun/2024:16:33:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1724","request_time":"0.661","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ccfb71eb332d55e1c9407bfeb07f4d19"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/07efa46b-c3a4-49d8-899c-fbe47cd8914c' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"da846bf8-645c-4e62-b7ca-e7100cc96b40","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382819.0294676} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ccc5803ad88b511451ec3cc49e21f0e8"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6d1ec706-ddc5-4d88-bc3f-e15a906fd510","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382819.034757} 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":"ccc5803ad88b511451ec3cc49e21f0e8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"ed49ba26-ec92-4264-a3d0-bfe977bf5f77","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382819.0466604} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"104a117b-a198-4652-a599-361e138b9e05","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382819.046839} 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":"ccc5803ad88b511451ec3cc49e21f0e8"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:39.046631973Z"}]},"request_id":"da124c6c-5ddd-418a-9998-81b71f870625","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382819.0516496} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ccc5803ad88b511451ec3cc49e21f0e8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.060","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ccc5803ad88b511451ec3cc49e21f0e8"} device-1 | {"level":"info","message":"POST /devices? 201 54ms","method":"POST","requestID":"ccc5803ad88b511451ec3cc49e21f0e8","responseTime":54,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOX0.bbcCeGhFLSiH-FXKhvMuzUWiaY8T8DH4VpjickBFxJo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"53371bd55e51867859248340cb570292","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:39Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.876627,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382819,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOX0.bbcCeGhFLSiH-FXKhvMuzUWiaY8T8DH4VpjickBFxJo"} 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":"53371bd55e51867859248340cb570292"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4a06015b-67cf-4239-9b3e-4212643e81a2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382819.0787582} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53371bd55e51867859248340cb570292"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ec970e2b-1a23-4a06-86c0-1a557ec17efe","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382819.0843933} 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":"53371bd55e51867859248340cb570292"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"fc2e7007-abfa-467f-828a-b0546094c513","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382819.100015} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a6931864-24f1-4ce0-a6e2-f07535141001","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382819.1010184} 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":"53371bd55e51867859248340cb570292"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:39.099988515Z"}]},"request_id":"5bb81b14-f74c-48a7-a848-def2801c69c7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382819.1048422} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53371bd55e51867859248340cb570292"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"53371bd55e51867859248340cb570292"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"53371bd55e51867859248340cb570292","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOX0.bbcCeGhFLSiH-FXKhvMuzUWiaY8T8DH4VpjickBFxJo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c89ebc296006c93e0dbfe19edf722073","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:39Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.691313,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:39Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382819,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOX0.bbcCeGhFLSiH-FXKhvMuzUWiaY8T8DH4VpjickBFxJo"} 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":"c89ebc296006c93e0dbfe19edf722073"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:39.099988515Z"}]},"request_id":"5909ec5b-477f-4856-a55e-fcd5d6d2b6c1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382819.6033738} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c89ebc296006c93e0dbfe19edf722073"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5df5fca3-5ad7-4c95-a327-bd79f155787c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382819.6090968} 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":"c89ebc296006c93e0dbfe19edf722073"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:39.099988515Z"}]},"request_id":"fe5c62b9-8a62-448b-802a-e57815dd2f9d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382819.6205387} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c89ebc296006c93e0dbfe19edf722073"},"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/32e58124-9f20-42ed-a39c-f8a693fa215b 200 29ms","method":"PATCH","requestID":"c89ebc296006c93e0dbfe19edf722073","responseTime":29,"status":200,"url":"/devices/32e58124-9f20-42ed-a39c-f8a693fa215b"} gateway-1 | {"time_local":"14/Jun/2024:16:33:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/32e58124-9f20-42ed-a39c-f8a693fa215b HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.034","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"c89ebc296006c93e0dbfe19edf722073"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOX0.bbcCeGhFLSiH-FXKhvMuzUWiaY8T8DH4VpjickBFxJo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e58733e85e2d0f3c13cfd6aeea2d790a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:39Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.692514,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:39Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382819,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgxOX0.bbcCeGhFLSiH-FXKhvMuzUWiaY8T8DH4VpjickBFxJo"} 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":"e58733e85e2d0f3c13cfd6aeea2d790a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/32e58124-9f20-42ed-a39c-f8a693fa215b/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":"e58733e85e2d0f3c13cfd6aeea2d790a"} device-1 | {"level":"info","message":"POST /devices/32e58124-9f20-42ed-a39c-f8a693fa215b/websocket 200 24ms","method":"POST","requestID":"e58733e85e2d0f3c13cfd6aeea2d790a","responseTime":24,"status":200,"url":"/devices/32e58124-9f20-42ed-a39c-f8a693fa215b/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"2ef90187cf57a832b2862fa487b21039","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5/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":"2ef90187cf57a832b2862fa487b21039"} device-1 | {"level":"info","message":"OPTIONS /devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5/websocket 200 1ms","method":"OPTIONS","requestID":"2ef90187cf57a832b2862fa487b21039","responseTime":1,"status":200,"url":"/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a35ef2bc49d1ccc3e6b1f01220681e0c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.678232,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} 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":"a35ef2bc49d1ccc3e6b1f01220681e0c"},"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/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5/websocket 200 30ms","method":"POST","requestID":"a35ef2bc49d1ccc3e6b1f01220681e0c","responseTime":30,"status":200,"url":"/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5/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":"a35ef2bc49d1ccc3e6b1f01220681e0c"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"656fc31f5f055f2864ce90a0107378fc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.638626,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} 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":"656fc31f5f055f2864ce90a0107378fc"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:39.046631973Z"}]},"request_id":"ecddc252-940e-4314-afeb-90bd3fbd8b94","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.0955234} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"656fc31f5f055f2864ce90a0107378fc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5? 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":"656fc31f5f055f2864ce90a0107378fc"} device-1 | {"level":"info","message":"GET /devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5? 200 12ms","method":"GET","requestID":"656fc31f5f055f2864ce90a0107378fc","responseTime":12,"status":200,"url":"/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3591a7c3eea59ce1db6d3de95d7b13b2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.656035,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} 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":"3591a7c3eea59ce1db6d3de95d7b13b2"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:39.099988515Z"}]},"request_id":"23f6b33f-53e7-4cd2-ab4d-f47c42592c08","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.1111498} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3591a7c3eea59ce1db6d3de95d7b13b2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/32e58124-9f20-42ed-a39c-f8a693fa215b? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3591a7c3eea59ce1db6d3de95d7b13b2"} device-1 | {"level":"info","message":"GET /devices/32e58124-9f20-42ed-a39c-f8a693fa215b? 200 12ms","method":"GET","requestID":"3591a7c3eea59ce1db6d3de95d7b13b2","responseTime":12,"status":200,"url":"/devices/32e58124-9f20-42ed-a39c-f8a693fa215b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"16d8109361ead42692521504b1b2ed39","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:48592","level":"info","msg":"Received request.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.618025,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} 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":"16d8109361ead42692521504b1b2ed39"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"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:48592","level":"info","msg":"Received request.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.614488,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} 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":"dbf02370-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.626078,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} 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":"dbf07190-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:39.046631973Z"}]},"request_id":"5095abab-d0ab-4a8c-9a98-c4422c3d5b2a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.1678793} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dbf02370-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:39.099988515Z"}]},"request_id":"3e915b70-9db1-456e-8558-fe6fd159e4e0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.1693382} device-1 | {"level":"info","message":"getDevicesByDeviceId 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":"dbf07190-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"GET /devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5? 200 14ms","method":"GET","requestID":"dbf02370-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/32e58124-9f20-42ed-a39c-f8a693fa215b? 200 15ms","method":"GET","requestID":"dbf07190-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/32e58124-9f20-42ed-a39c-f8a693fa215b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"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/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.059062,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dbf8d600-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.882179,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dbf92420-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:39.046631973Z"}]},"request_id":"bb396e10-005d-424b-b1c5-7b5aa94831dd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.2264342} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dbf8d600-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:39.099988515Z"}]},"request_id":"75f776da-3741-40dc-9a0f-1579ea2a17bb","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.2305784} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dbf92420-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"GET /devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5? 200 16ms","method":"GET","requestID":"dbf8d600-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7e18de5c-4647-4139-966e-ef7f4f74eef8#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7e18de5c-4647-4139-966e-ef7f4f74eef8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"fa957cb7-aa1e-4982-a2e9-321b887e66e1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.2353349} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1811a6a2-c3dc-4ebc-8a4d-343a3a49a0f1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.2355106} device-1 | {"level":"info","message":"GET /devices/32e58124-9f20-42ed-a39c-f8a693fa215b? 200 19ms","method":"GET","requestID":"dbf92420-2a6b-11ef-8ad5-3d996a2c698c","responseTime":19,"status":200,"url":"/devices/32e58124-9f20-42ed-a39c-f8a693fa215b?"} 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":"16d8109361ead42692521504b1b2ed39"},"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:48592","level":"info","msg":"Received request.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.80803,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dbfc5870-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.128","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"16d8109361ead42692521504b1b2ed39"} experiment-1 | {"level":"info","message":"POST /experiments? 201 124ms","method":"POST","requestID":"16d8109361ead42692521504b1b2ed39","responseTime":124,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5/signaling 200 7ms","method":"POST","requestID":"dbfc5870-2a6b-11ef-8ad5-3d996a2c698c","responseTime":7,"status":200,"url":"/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b4c7e394f78738860e8683a4f8176919","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.625549,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dbfddf10-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.638244,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b4c7e394f78738860e8683a4f8176919"},"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/32e58124-9f20-42ed-a39c-f8a693fa215b/signaling 200 9ms","method":"POST","requestID":"dbfddf10-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/devices/32e58124-9f20-42ed-a39c-f8a693fa215b/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"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":"48254373-f621-4b3b-bc60-31515abd7ee9"},{"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":"23201f50-0b46-4bc8-b90c-f180cc706f09"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"06e76719-40ca-48a6-9d01-bbcb1736472b"}]},"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/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5"},{"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/32e58124-9f20-42ed-a39c-f8a693fa215b"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:39.046631973Z"}]},"request_id":"f74e97cb-37d6-4099-baa7-37a6ddb7032c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.259924} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b4c7e394f78738860e8683a4f8176919"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.525492,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5? 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":"b4c7e394f78738860e8683a4f8176919"} device-1 | {"level":"info","message":"GET /devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5? 200 16ms","method":"GET","requestID":"b4c7e394f78738860e8683a4f8176919","responseTime":16,"status":200,"url":"/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5?"} 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":"dbffb3d0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cd8418380b59176918e49f0992dfa40c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"552fd23d-a490-45c0-920a-60b280253420","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.2748542} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7559c86e-bf16-4b64-bc2d-430d1debc08e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.2751913} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.866353,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} 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":"dbffb3d0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd8418380b59176918e49f0992dfa40c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F32e58124-9f20-42ed-a39c-f8a693fa215b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:39.099988515Z"}]},"request_id":"cd69af44-d332-4027-a5fb-eefac5e949e9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.286193} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd8418380b59176918e49f0992dfa40c"},"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/4e4560af-96bb-427b-aa1a-8bec5264bb02'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4e4560af-96bb-427b-aa1a-8bec5264bb02'"} 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":"dbffb3d0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":37,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/32e58124-9f20-42ed-a39c-f8a693fa215b? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cd8418380b59176918e49f0992dfa40c"} device-1 | {"level":"info","message":"GET /devices/32e58124-9f20-42ed-a39c-f8a693fa215b? 200 27ms","method":"GET","requestID":"cd8418380b59176918e49f0992dfa40c","responseTime":27,"status":200,"url":"/devices/32e58124-9f20-42ed-a39c-f8a693fa215b?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"4e4560af-96bb-427b-aa1a-8bec5264bb02","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4e4560af-96bb-427b-aa1a-8bec5264bb02' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4e4560af-96bb-427b-aa1a-8bec5264bb02","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"92c80fbffcd0c199296997d6ab2fef6b","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/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5"},{"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/32e58124-9f20-42ed-a39c-f8a693fa215b"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4e4560af-96bb-427b-aa1a-8bec5264bb02"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"92c80fbffcd0c199296997d6ab2fef6b","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.006","http_referrer":"","http_user_agent":"node-fetch","requestID":"92c80fbffcd0c199296997d6ab2fef6b"} device-1 | {"data":{"peerconnection":"4e4560af-96bb-427b-aa1a-8bec5264bb02","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"4e4560af-96bb-427b-aa1a-8bec5264bb02","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/4e4560af-96bb-427b-aa1a-8bec5264bb02' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4e4560af-96bb-427b-aa1a-8bec5264bb02","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d8ec2654154953e1d25993008b21cd81","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/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5"},{"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/32e58124-9f20-42ed-a39c-f8a693fa215b"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4e4560af-96bb-427b-aa1a-8bec5264bb02"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4e4560af-96bb-427b-aa1a-8bec5264bb02","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"02a3fcad-ce3e-4d85-8989-936f6e51837b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.4294322} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.421372,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4e4560af-96bb-427b-aa1a-8bec5264bb02","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4e4560af-96bb-427b-aa1a-8bec5264bb02","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":"dc18ba10-2a6b-11ef-8ad5-3d996a2c698c"},"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/4e4560af-96bb-427b-aa1a-8bec5264bb02 200 8ms","method":"GET","requestID":"dc18ba10-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/peerconnections/4e4560af-96bb-427b-aa1a-8bec5264bb02"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 34ms","method":"POST","requestID":"d8ec2654154953e1d25993008b21cd81","responseTime":34,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch","requestID":"d8ec2654154953e1d25993008b21cd81"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c81ecb308d0aafbeb8268a59993a823e","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.697114,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} 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":"c81ecb308d0aafbeb8268a59993a823e"},"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/7e18de5c-4647-4139-966e-ef7f4f74eef8"} experiment-1 | {"level":"info","message":"GET /experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8 200 10ms","method":"GET","requestID":"c81ecb308d0aafbeb8268a59993a823e","responseTime":10,"status":200,"url":"/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c81ecb308d0aafbeb8268a59993a823e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2094e3916398dec2c8c29a920c4fb1c4","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.708592,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} 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":"2094e3916398dec2c8c29a920c4fb1c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.956612,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4e4560af-96bb-427b-aa1a-8bec5264bb02","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/4e4560af-96bb-427b-aa1a-8bec5264bb02","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} 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":"dc2a1f30-2a6b-11ef-8ad5-3d996a2c698c"},"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/4e4560af-96bb-427b-aa1a-8bec5264bb02' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4e4560af-96bb-427b-aa1a-8bec5264bb02' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4e4560af-96bb-427b-aa1a-8bec5264bb02","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4e4560af-96bb-427b-aa1a-8bec5264bb02': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4e4560af-96bb-427b-aa1a-8bec5264bb02","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"415c79d9-326c-4404-a7ab-b97a1ddc01dc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.5549061} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"81a19a1aa1b2ff08c753fc7b39c60d95","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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d7a2cd22-588e-40ff-889b-8ffab2d6c046","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.555266} 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/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5"},{"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/32e58124-9f20-42ed-a39c-f8a693fa215b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4e4560af-96bb-427b-aa1a-8bec5264bb02"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a2aa2c493dcdbc9377cd79330be3ca02","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":"dc2a1f30-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"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/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5"},{"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/32e58124-9f20-42ed-a39c-f8a693fa215b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4e4560af-96bb-427b-aa1a-8bec5264bb02"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"4e4560af-96bb-427b-aa1a-8bec5264bb02","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/4e4560af-96bb-427b-aa1a-8bec5264bb02 204 39ms","method":"DELETE","requestID":"dc2a1f30-2a6b-11ef-8ad5-3d996a2c698c","responseTime":39,"status":204,"url":"/peerconnections/4e4560af-96bb-427b-aa1a-8bec5264bb02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7e18de5c-4647-4139-966e-ef7f4f74eef8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7e18de5c-4647-4139-966e-ef7f4f74eef8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"0b593924-f0de-43eb-af5e-37d476ad352d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.6273239} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1fe57b22-1a96-4729-8535-26c5a486af90","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.627513} authorization-1 | {"level":"info","message":"POST /relations/update 200 33ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2094e3916398dec2c8c29a920c4fb1c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":33}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8 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":"2094e3916398dec2c8c29a920c4fb1c4"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1640","request_time":"2.046","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"05ac630576c356d0994771ab81989de3"} experiment-1 | {"level":"info","message":"DELETE /experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8 204 169ms","method":"DELETE","requestID":"2094e3916398dec2c8c29a920c4fb1c4","responseTime":169,"status":204,"url":"/experiments/7e18de5c-4647-4139-966e-ef7f4f74eef8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 145ms","method":"POST","requestID":"81a19a1aa1b2ff08c753fc7b39c60d95","responseTime":145,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.149","http_referrer":"","http_user_agent":"node-fetch","requestID":"81a19a1aa1b2ff08c753fc7b39c60d95"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 145ms","method":"POST","requestID":"a2aa2c493dcdbc9377cd79330be3ca02","responseTime":145,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.150","http_referrer":"","http_user_agent":"node-fetch","requestID":"a2aa2c493dcdbc9377cd79330be3ca02"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"62197edb774835f227c6c44b7f20a4e6","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.820941,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} 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":"62197edb774835f227c6c44b7f20a4e6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1724","request_time":"0.639","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d29123b095d086f47965d4b2debe88f7"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/32e58124-9f20-42ed-a39c-f8a693fa215b' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a3a46c89-55ba-4d9e-9ff3-e7e6be6f3b38","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.7263982} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"62197edb774835f227c6c44b7f20a4e6"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8a38b36f-abbb-4841-ab95-a2bb66a79a43","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.7322147} 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":"62197edb774835f227c6c44b7f20a4e6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0cab6c41-5f89-4d69-bfd1-bdbf2109c4d5' closed"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"8a678ccd-d56e-48af-be54-79715d7e7980","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.745408} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6f4a0fc7-9ebd-4f6a-9c02-e77abd99d6f5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.7456186} 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":"62197edb774835f227c6c44b7f20a4e6"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:41.745331448Z"}]},"request_id":"afdce3ab-c1d4-4f90-bfa3-f875c747075a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.7498453} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"62197edb774835f227c6c44b7f20a4e6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"62197edb774835f227c6c44b7f20a4e6"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"62197edb774835f227c6c44b7f20a4e6","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3ead79b1abb3db9f90cd2958f20421a6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.758569,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382821,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMX0._T4ipMMjP0h_Zkx9c7iv_relo0P6UY4MtwudMo_lR98"} 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":"3ead79b1abb3db9f90cd2958f20421a6"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ad0de96-0716-4f7b-bf48-6cce91863866","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e4c59fb6-4a61-4b18-8e5a-c2d444c778ef","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.7770534} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3ead79b1abb3db9f90cd2958f20421a6"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4836a825-2a37-47df-ac4b-dc158a9454b2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.7828403} 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":"3ead79b1abb3db9f90cd2958f20421a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ad0de96-0716-4f7b-bf48-6cce91863866","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"dec36b79-80ff-47eb-88db-b587836470f4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.7943845} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1c6969dc-a82b-4549-adea-d7a6d15e0c11","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.794456} 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":"3ead79b1abb3db9f90cd2958f20421a6"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ad0de96-0716-4f7b-bf48-6cce91863866","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ad0de96-0716-4f7b-bf48-6cce91863866","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:41.794356774Z"}]},"request_id":"4454fcdc-eff4-47e1-bfb5-67da600bab49","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382821.7988539} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3ead79b1abb3db9f90cd2958f20421a6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:41 +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":"3ead79b1abb3db9f90cd2958f20421a6"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"3ead79b1abb3db9f90cd2958f20421a6","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMn0.MNsQCCPxNtKtp5gAN-hr9l-bzv4U9741asp8vKwkT9Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4fed5f8eafb948919ddc84ac53676add","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:42Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.656483,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:42Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382822,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMn0.MNsQCCPxNtKtp5gAN-hr9l-bzv4U9741asp8vKwkT9Y"} 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":"4fed5f8eafb948919ddc84ac53676add"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:41.745331448Z"}]},"request_id":"f153c4d0-4205-417f-9293-ccb760b898a8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382822.2952757} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4fed5f8eafb948919ddc84ac53676add"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f223859b-6a59-4e01-a688-521396233dbc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382822.300287} 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":"4fed5f8eafb948919ddc84ac53676add"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:41.745331448Z"}]},"request_id":"6ee11ea5-618b-45b3-96bb-e7dab9c263ae","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382822.3158467} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4fed5f8eafb948919ddc84ac53676add"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.035","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"4fed5f8eafb948919ddc84ac53676add"} device-1 | {"level":"info","message":"PATCH /devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95 200 32ms","method":"PATCH","requestID":"4fed5f8eafb948919ddc84ac53676add","responseTime":32,"status":200,"url":"/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMn0.MNsQCCPxNtKtp5gAN-hr9l-bzv4U9741asp8vKwkT9Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"27de40e12337949306afe85207b258bf","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:42Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.654632,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:42Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382822,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyMn0.MNsQCCPxNtKtp5gAN-hr9l-bzv4U9741asp8vKwkT9Y"} 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":"27de40e12337949306afe85207b258bf"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95/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":"27de40e12337949306afe85207b258bf"} device-1 | {"level":"info","message":"POST /devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95/websocket 200 17ms","method":"POST","requestID":"27de40e12337949306afe85207b258bf","responseTime":17,"status":200,"url":"/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"589d9ea3c10254ac4bfdf0a95c911fba","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1ad0de96-0716-4f7b-bf48-6cce91863866/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"589d9ea3c10254ac4bfdf0a95c911fba"} device-1 | {"level":"info","message":"OPTIONS /devices/1ad0de96-0716-4f7b-bf48-6cce91863866/websocket 200 1ms","method":"OPTIONS","requestID":"589d9ea3c10254ac4bfdf0a95c911fba","responseTime":1,"status":200,"url":"/devices/1ad0de96-0716-4f7b-bf48-6cce91863866/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a61daa690d7961d54cc14409b1dc60c5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.685417,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ad0de96-0716-4f7b-bf48-6cce91863866","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1ad0de96-0716-4f7b-bf48-6cce91863866","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382823,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY"} 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":"a61daa690d7961d54cc14409b1dc60c5"},"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/1ad0de96-0716-4f7b-bf48-6cce91863866/websocket 200 21ms","method":"POST","requestID":"a61daa690d7961d54cc14409b1dc60c5","responseTime":21,"status":200,"url":"/devices/1ad0de96-0716-4f7b-bf48-6cce91863866/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:33:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1ad0de96-0716-4f7b-bf48-6cce91863866/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.024","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a61daa690d7961d54cc14409b1dc60c5"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1ad0de96-0716-4f7b-bf48-6cce91863866' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fb517f899d5b19ae6422616d41df3b94","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.692553,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382823,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY"} 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":"fb517f899d5b19ae6422616d41df3b94"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:41.745331448Z"}]},"request_id":"58d23613-1119-445f-8513-2b5411b54373","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382823.7618055} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fb517f899d5b19ae6422616d41df3b94"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fb517f899d5b19ae6422616d41df3b94"} device-1 | {"level":"info","message":"GET /devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95? 200 10ms","method":"GET","requestID":"fb517f899d5b19ae6422616d41df3b94","responseTime":10,"status":200,"url":"/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5b9575cf6e4e2696fa18f17e670d803a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.687023,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ad0de96-0716-4f7b-bf48-6cce91863866","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1ad0de96-0716-4f7b-bf48-6cce91863866","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382823,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY"} 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":"5b9575cf6e4e2696fa18f17e670d803a"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ad0de96-0716-4f7b-bf48-6cce91863866","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ad0de96-0716-4f7b-bf48-6cce91863866","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:41.794356774Z"}]},"request_id":"0a656226-9e95-45e7-87e2-e91d3778191d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382823.776412} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5b9575cf6e4e2696fa18f17e670d803a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1ad0de96-0716-4f7b-bf48-6cce91863866? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5b9575cf6e4e2696fa18f17e670d803a"} device-1 | {"level":"info","message":"GET /devices/1ad0de96-0716-4f7b-bf48-6cce91863866? 200 10ms","method":"GET","requestID":"5b9575cf6e4e2696fa18f17e670d803a","responseTime":10,"status":200,"url":"/devices/1ad0de96-0716-4f7b-bf48-6cce91863866?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"57c364536877faeb32d51bd24bed8ba0","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:48592","level":"info","msg":"Received request.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.703595,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382823,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY"} 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":"57c364536877faeb32d51bd24bed8ba0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"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:48592","level":"info","msg":"Received request.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.400465,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382823,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd862cc0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.991284,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ad0de96-0716-4f7b-bf48-6cce91863866","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1ad0de96-0716-4f7b-bf48-6cce91863866","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382823,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd8653d0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:41.745331448Z"}]},"request_id":"f6ad298c-c39c-4acc-9ad5-36d94e87790a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382823.8297486} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd862cc0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ad0de96-0716-4f7b-bf48-6cce91863866","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ad0de96-0716-4f7b-bf48-6cce91863866","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:41.794356774Z"}]},"request_id":"e97cda4a-0e53-4f2a-ac07-fb9d5f599051","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382823.8309581} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd8653d0-2a6b-11ef-8ad5-3d996a2c698c"},"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/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95? 200 16ms","method":"GET","requestID":"dd862cc0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1ad0de96-0716-4f7b-bf48-6cce91863866? 200 16ms","method":"GET","requestID":"dd8653d0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/1ad0de96-0716-4f7b-bf48-6cce91863866?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"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/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.695224,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382823,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd8eb840-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.586697,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ad0de96-0716-4f7b-bf48-6cce91863866","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1ad0de96-0716-4f7b-bf48-6cce91863866","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382823,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY"} 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":"dd8edf50-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:41.745331448Z"}]},"request_id":"c411405c-6e51-4417-87c9-1866ba051c7b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382823.8871322} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd8eb840-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ad0de96-0716-4f7b-bf48-6cce91863866","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ad0de96-0716-4f7b-bf48-6cce91863866","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:41.794356774Z"}]},"request_id":"ba0f43a8-41dd-49e2-b3d8-3b408acc7dc8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382823.888072} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd8edf50-2a6b-11ef-8ad5-3d996a2c698c"},"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/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95? 200 16ms","method":"GET","requestID":"dd8eb840-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1ad0de96-0716-4f7b-bf48-6cce91863866? 200 15ms","method":"GET","requestID":"dd8edf50-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/1ad0de96-0716-4f7b-bf48-6cce91863866?"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"c98e8922-b19b-47cf-8e6f-77ad09864603","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382823.8937418} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bace6cf7-8fcd-4192-bb17-dd7bbe908f5e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382823.8941011} 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":"57c364536877faeb32d51bd24bed8ba0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.966297,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd91c580-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:33:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.123","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"57c364536877faeb32d51bd24bed8ba0"} experiment-1 | {"level":"info","message":"POST /experiments? 201 119ms","method":"POST","requestID":"57c364536877faeb32d51bd24bed8ba0","responseTime":119,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95/signaling 200 10ms","method":"POST","requestID":"dd91c580-2a6b-11ef-8ad5-3d996a2c698c","responseTime":10,"status":200,"url":"/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a9bb23813c78685d803a365a96b28367","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.622548,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ad0de96-0716-4f7b-bf48-6cce91863866","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1ad0de96-0716-4f7b-bf48-6cce91863866","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dd939a40-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.593516,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382823,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY"} 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":"a9bb23813c78685d803a365a96b28367"},"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/1ad0de96-0716-4f7b-bf48-6cce91863866/signaling 200 9ms","method":"POST","requestID":"dd939a40-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/devices/1ad0de96-0716-4f7b-bf48-6cce91863866/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"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":"b9e468f1-3379-4ad6-83f1-f09d4504d90b"},{"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":"af8640b7-21c0-45fd-b88c-e5a5229767d0"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"5ac615b8-69dc-4571-b7c5-aa66fb1c883a"}]},"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/1ad0de96-0716-4f7b-bf48-6cce91863866"},{"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/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3d7396a6-25b0-4b31-9ba5-e377e4e5ad95","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:41.745331448Z"}]},"request_id":"ddc754f6-f4a9-4c56-887c-a4f1813acd8a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382823.919695} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a9bb23813c78685d803a365a96b28367"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:43Z"} device-1 | {"level":"info","message":"GET /devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95? 200 14ms","method":"GET","requestID":"a9bb23813c78685d803a365a96b28367","responseTime":14,"status":200,"url":"/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a9bb23813c78685d803a365a96b28367"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.759554,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382823,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY"} 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":"dd956f00-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"12cd5273582855a9e6452f1cac086b93","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.701391,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1ad0de96-0716-4f7b-bf48-6cce91863866","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1ad0de96-0716-4f7b-bf48-6cce91863866","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382823,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyM30.O1ehK4gd-4damcFmJbbhHfkeY01oY1LI_xvXQqrE4ZY"} 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":"12cd5273582855a9e6452f1cac086b93"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"d994aad5-8f75-4068-9a72-90c50dda90ff","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382823.9329085} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b431f3b7-9e03-4adb-a46b-be903c714d0e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382823.9330928} 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":"dd956f00-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ad0de96-0716-4f7b-bf48-6cce91863866","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1ad0de96-0716-4f7b-bf48-6cce91863866","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:41.794356774Z"}]},"request_id":"4c58f02d-3524-4fdd-90c4-0a919abc84b5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382823.9372864} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"12cd5273582855a9e6452f1cac086b93"},"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/c91ac570-72e7-492a-ab42-82692a841200'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/c91ac570-72e7-492a-ab42-82692a841200'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 32ms","method":"POST","requestID":"dd956f00-2a6b-11ef-8ad5-3d996a2c698c","responseTime":32,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1ad0de96-0716-4f7b-bf48-6cce91863866? 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":"12cd5273582855a9e6452f1cac086b93"} device-1 | {"level":"info","message":"GET /devices/1ad0de96-0716-4f7b-bf48-6cce91863866? 200 24ms","method":"GET","requestID":"12cd5273582855a9e6452f1cac086b93","responseTime":24,"status":200,"url":"/devices/1ad0de96-0716-4f7b-bf48-6cce91863866?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"c91ac570-72e7-492a-ab42-82692a841200","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"level":"info","message":"Successfully created peerconnections for 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c91ac570-72e7-492a-ab42-82692a841200' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c91ac570-72e7-492a-ab42-82692a841200","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bb148a4bc44bf9e419c7f70766038708","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/1ad0de96-0716-4f7b-bf48-6cce91863866"},{"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/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/c91ac570-72e7-492a-ab42-82692a841200"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"bb148a4bc44bf9e419c7f70766038708","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"bb148a4bc44bf9e419c7f70766038708"} device-1 | {"data":{"peerconnection":"c91ac570-72e7-492a-ab42-82692a841200","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"c91ac570-72e7-492a-ab42-82692a841200","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/c91ac570-72e7-492a-ab42-82692a841200' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c91ac570-72e7-492a-ab42-82692a841200","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3fa06035f912cc00739376df21020250","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/1ad0de96-0716-4f7b-bf48-6cce91863866"},{"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/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/c91ac570-72e7-492a-ab42-82692a841200"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc91ac570-72e7-492a-ab42-82692a841200","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5a0b3ee6-6d9b-4044-b2e1-42a1ad0afec3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.0678077} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.384802,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c91ac570-72e7-492a-ab42-82692a841200","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/c91ac570-72e7-492a-ab42-82692a841200","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":"ddab40f0-2a6b-11ef-8ad5-3d996a2c698c"},"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/c91ac570-72e7-492a-ab42-82692a841200 200 8ms","method":"GET","requestID":"ddab40f0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/peerconnections/c91ac570-72e7-492a-ab42-82692a841200"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"3fa06035f912cc00739376df21020250","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"3fa06035f912cc00739376df21020250"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNH0.TTNpNtgDV7XxwEGcX-MjstG85ShBIAtdoUXq-AQYtAc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c3167161cd280fc8447fe423e3cce386","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.980976,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382824,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNH0.TTNpNtgDV7XxwEGcX-MjstG85ShBIAtdoUXq-AQYtAc"} 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":"c3167161cd280fc8447fe423e3cce386"},"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/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"} gateway-1 | {"time_local":"14/Jun/2024:16:33:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c3167161cd280fc8447fe423e3cce386"} experiment-1 | {"level":"info","message":"GET /experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8 200 11ms","method":"GET","requestID":"c3167161cd280fc8447fe423e3cce386","responseTime":11,"status":200,"url":"/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNH0.TTNpNtgDV7XxwEGcX-MjstG85ShBIAtdoUXq-AQYtAc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f370f71314e34b9f014c5de31194bcd2","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.628326,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382824,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNH0.TTNpNtgDV7XxwEGcX-MjstG85ShBIAtdoUXq-AQYtAc"} 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":"f370f71314e34b9f014c5de31194bcd2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.650016,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c91ac570-72e7-492a-ab42-82692a841200","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/c91ac570-72e7-492a-ab42-82692a841200","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382824,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNH0.TTNpNtgDV7XxwEGcX-MjstG85ShBIAtdoUXq-AQYtAc"} 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":"ddbb94a0-2a6b-11ef-8ad5-3d996a2c698c"},"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/c91ac570-72e7-492a-ab42-82692a841200' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/c91ac570-72e7-492a-ab42-82692a841200' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c91ac570-72e7-492a-ab42-82692a841200","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"78bd9a6a1bfcac0f64fc393e0b234e6f","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc91ac570-72e7-492a-ab42-82692a841200': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc91ac570-72e7-492a-ab42-82692a841200","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"7b6eabb0-0783-4a38-9149-d432f9db92c8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.1859143} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c2665082-3325-4c33-a8a6-d2d1a9b88159","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.186256} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 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":"ddbb94a0-2a6b-11ef-8ad5-3d996a2c698c"},"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","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/1ad0de96-0716-4f7b-bf48-6cce91863866"},{"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/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c91ac570-72e7-492a-ab42-82692a841200"}}},"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/1ad0de96-0716-4f7b-bf48-6cce91863866"},{"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/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c91ac570-72e7-492a-ab42-82692a841200"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"64d820824f978ce305f33472efb83adf","responseTime":1,"status":200,"url":"/auth"} device-1 | {"data":{"peerconnection":"c91ac570-72e7-492a-ab42-82692a841200","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/c91ac570-72e7-492a-ab42-82692a841200 204 35ms","method":"DELETE","requestID":"ddbb94a0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":35,"status":204,"url":"/peerconnections/c91ac570-72e7-492a-ab42-82692a841200"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"17726252-8e51-45b9-9fe9-9e2df1ae08f9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.226517} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dde6610d-8ad3-4477-bb98-93c241e62c82","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.2268622} 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":"f370f71314e34b9f014c5de31194bcd2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"} gateway-1 | {"time_local":"14/Jun/2024:16:33:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.121","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f370f71314e34b9f014c5de31194bcd2"} experiment-1 | {"level":"info","message":"DELETE /experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8 204 118ms","method":"DELETE","requestID":"f370f71314e34b9f014c5de31194bcd2","responseTime":118,"status":204,"url":"/experiments/9e6cc4b7-efe4-404f-9c9c-a6bd7c1290d8"} gateway-1 | {"time_local":"14/Jun/2024:16:33:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1642","request_time":"1.937","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"04ef70a038f80b93bf6aea41cd377192"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 94ms","method":"POST","requestID":"78bd9a6a1bfcac0f64fc393e0b234e6f","responseTime":94,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.099","http_referrer":"","http_user_agent":"node-fetch","requestID":"78bd9a6a1bfcac0f64fc393e0b234e6f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 94ms","method":"POST","requestID":"64d820824f978ce305f33472efb83adf","responseTime":94,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.098","http_referrer":"","http_user_agent":"node-fetch","requestID":"64d820824f978ce305f33472efb83adf"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNH0.TTNpNtgDV7XxwEGcX-MjstG85ShBIAtdoUXq-AQYtAc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c9eb47443ad6e9cd69de14bfa4486fe2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:44Z"} gateway-1 | {"time_local":"14/Jun/2024:16:33:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1722","request_time":"0.551","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"30408b041879b7532bc5e4160d33303c"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.953966,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382824,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNH0.TTNpNtgDV7XxwEGcX-MjstG85ShBIAtdoUXq-AQYtAc"} 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":"c9eb47443ad6e9cd69de14bfa4486fe2"},"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/1ad0de96-0716-4f7b-bf48-6cce91863866' closed"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/3d7396a6-25b0-4b31-9ba5-e377e4e5ad95' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2cbd5b96-7acb-487c-be9d-126cef4f82ca","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.3130043} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c9eb47443ad6e9cd69de14bfa4486fe2"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"256f7908-cd88-40b0-91c5-1d12159fa88a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.3179548} 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":"c9eb47443ad6e9cd69de14bfa4486fe2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"20b87cdf-c488-42c4-947c-f28737871e06","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.330042} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"059d47e2-09a6-4c6c-9425-c539aefc67f4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.3300767} 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":"c9eb47443ad6e9cd69de14bfa4486fe2"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:44.330009824Z"}]},"request_id":"b3411690-5046-47ca-a294-d71e6e67e3bc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.3347578} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c9eb47443ad6e9cd69de14bfa4486fe2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c9eb47443ad6e9cd69de14bfa4486fe2"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"c9eb47443ad6e9cd69de14bfa4486fe2","responseTime":50,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNH0.TTNpNtgDV7XxwEGcX-MjstG85ShBIAtdoUXq-AQYtAc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"889664749e3fd336fecce07dff166196","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.839207,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382824,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNH0.TTNpNtgDV7XxwEGcX-MjstG85ShBIAtdoUXq-AQYtAc"} 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":"889664749e3fd336fecce07dff166196"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F501b81f0-46e6-46bc-b687-f55ca6da14fb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"dea949d2-cd32-42c1-8dfb-b8cc1caa0929","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.3589764} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"889664749e3fd336fecce07dff166196"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"96685508-bbf6-46f5-aaf6-f0af6a4d88f2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.364233} 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":"889664749e3fd336fecce07dff166196"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F501b81f0-46e6-46bc-b687-f55ca6da14fb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"68eea8f6-02c8-4c7c-8818-e6160eaf08ef","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.3757558} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a3d77e83-bd89-42d5-8d56-c013c53c62fc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.3760316} 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":"889664749e3fd336fecce07dff166196"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F501b81f0-46e6-46bc-b687-f55ca6da14fb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F501b81f0-46e6-46bc-b687-f55ca6da14fb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:44.375724444Z"}]},"request_id":"0a4d8c76-b0ba-487c-ad96-d500b42232c5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.3808124} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"889664749e3fd336fecce07dff166196"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:44 +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":"889664749e3fd336fecce07dff166196"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"889664749e3fd336fecce07dff166196","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNH0.TTNpNtgDV7XxwEGcX-MjstG85ShBIAtdoUXq-AQYtAc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8df774d7bdc8f03ade90fe52bb582522","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.43439,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382824,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNH0.TTNpNtgDV7XxwEGcX-MjstG85ShBIAtdoUXq-AQYtAc"} 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":"8df774d7bdc8f03ade90fe52bb582522"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:44.330009824Z"}]},"request_id":"2d0d4475-f700-43ab-a111-d9daab704062","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.8698847} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8df774d7bdc8f03ade90fe52bb582522"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4a43f4a1-4701-42f8-958d-ceaa573242db","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.8750823} 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":"8df774d7bdc8f03ade90fe52bb582522"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:44.330009824Z"}]},"request_id":"4f9709a4-6da6-4d1b-80be-e0b0954a98c9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382824.88617} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8df774d7bdc8f03ade90fe52bb582522"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae 200 28ms","method":"PATCH","requestID":"8df774d7bdc8f03ade90fe52bb582522","responseTime":28,"status":200,"url":"/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae"} gateway-1 | {"time_local":"14/Jun/2024:16:33:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.031","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"8df774d7bdc8f03ade90fe52bb582522"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNH0.TTNpNtgDV7XxwEGcX-MjstG85ShBIAtdoUXq-AQYtAc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"252dfbcb005dbcb5aea3963bac477df0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.757937,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:44Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382824,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNH0.TTNpNtgDV7XxwEGcX-MjstG85ShBIAtdoUXq-AQYtAc"} 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":"252dfbcb005dbcb5aea3963bac477df0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.016","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"252dfbcb005dbcb5aea3963bac477df0"} device-1 | {"level":"info","message":"POST /devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae/websocket 200 13ms","method":"POST","requestID":"252dfbcb005dbcb5aea3963bac477df0","responseTime":13,"status":200,"url":"/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"fbade0bb56413debe3abbda16202d888","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/501b81f0-46e6-46bc-b687-f55ca6da14fb/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"fbade0bb56413debe3abbda16202d888"} device-1 | {"level":"info","message":"OPTIONS /devices/501b81f0-46e6-46bc-b687-f55ca6da14fb/websocket 200 0ms","method":"OPTIONS","requestID":"fbade0bb56413debe3abbda16202d888","responseTime":0,"status":200,"url":"/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"39fc63ba67da40b4039c4c8edcc88e58","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.695679,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} 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":"39fc63ba67da40b4039c4c8edcc88e58"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/501b81f0-46e6-46bc-b687-f55ca6da14fb/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.019","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"39fc63ba67da40b4039c4c8edcc88e58"} device-1 | {"level":"info","message":"POST /devices/501b81f0-46e6-46bc-b687-f55ca6da14fb/websocket 200 15ms","method":"POST","requestID":"39fc63ba67da40b4039c4c8edcc88e58","responseTime":15,"status":200,"url":"/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"85f708ae67c773dc378504d66df6a672","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.746365,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} 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":"85f708ae67c773dc378504d66df6a672"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:44.330009824Z"}]},"request_id":"8f99d7de-2427-4d2c-ba7e-b3f73efc6b91","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.354585} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"85f708ae67c773dc378504d66df6a672"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"85f708ae67c773dc378504d66df6a672"} device-1 | {"level":"info","message":"GET /devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae? 200 11ms","method":"GET","requestID":"85f708ae67c773dc378504d66df6a672","responseTime":11,"status":200,"url":"/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"15056bf05fa75c7319075264b0b0fff8","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.696324,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} 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":"15056bf05fa75c7319075264b0b0fff8"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F501b81f0-46e6-46bc-b687-f55ca6da14fb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F501b81f0-46e6-46bc-b687-f55ca6da14fb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:44.375724444Z"}]},"request_id":"7f8fdcd0-4954-45fc-939d-b3b6d7d1d52d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.3695989} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"15056bf05fa75c7319075264b0b0fff8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/501b81f0-46e6-46bc-b687-f55ca6da14fb? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"15056bf05fa75c7319075264b0b0fff8"} device-1 | {"level":"info","message":"GET /devices/501b81f0-46e6-46bc-b687-f55ca6da14fb? 200 10ms","method":"GET","requestID":"15056bf05fa75c7319075264b0b0fff8","responseTime":10,"status":200,"url":"/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b7eb6f80e7c6f72edf55db1f40f1971c","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:48592","level":"info","msg":"Received request.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.946903,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} 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":"b7eb6f80e7c6f72edf55db1f40f1971c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"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:48592","level":"info","msg":"Received request.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.616462,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} 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":"df11d5d0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.718497,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df1223f0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:44.330009824Z"}]},"request_id":"28ecd9c9-c9d5-4a37-bd2b-21196bb9a5d3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.4225676} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df11d5d0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F501b81f0-46e6-46bc-b687-f55ca6da14fb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F501b81f0-46e6-46bc-b687-f55ca6da14fb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:44.375724444Z"}]},"request_id":"4b4f5830-6e2f-44df-a7a2-7e5a4f10a963","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.4234838} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df1223f0-2a6b-11ef-8ad5-3d996a2c698c"},"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/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae? 200 14ms","method":"GET","requestID":"df11d5d0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/501b81f0-46e6-46bc-b687-f55ca6da14fb? 200 13ms","method":"GET","requestID":"df1223f0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":13,"status":200,"url":"/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"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/082b63b4-6b1e-4b77-813f-c699f666b06f"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.70714,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df1976f0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.725948,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df19c510-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:44.330009824Z"}]},"request_id":"2097cc8b-dd0c-4baa-a5f7-8495a67555c0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.4741335} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df1976f0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F501b81f0-46e6-46bc-b687-f55ca6da14fb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F501b81f0-46e6-46bc-b687-f55ca6da14fb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:44.375724444Z"}]},"request_id":"53b9e776-4ce8-4e03-ab05-83117ac70ea7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.475193} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df19c510-2a6b-11ef-8ad5-3d996a2c698c"},"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/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae? 200 16ms","method":"GET","requestID":"df1976f0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":16,"status":200,"url":"/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/501b81f0-46e6-46bc-b687-f55ca6da14fb? 200 15ms","method":"GET","requestID":"df19c510-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.686011,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df1c5d20-2a6b-11ef-8ad5-3d996a2c698c"},"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/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae/signaling 200 6ms","method":"POST","requestID":"df1c5d20-2a6b-11ef-8ad5-3d996a2c698c","responseTime":6,"status":200,"url":"/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae/signaling"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F082b63b4-6b1e-4b77-813f-c699f666b06f#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F082b63b4-6b1e-4b77-813f-c699f666b06f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"95f94898-b851-495a-b994-e4e531961019","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.4883254} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d3d4e8c6-8684-45ee-9f74-80333597aa31","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.4884772} 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":"b7eb6f80e7c6f72edf55db1f40f1971c"},"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:48592","level":"info","msg":"Received request.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.712826,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df1dbcb0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.122","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b7eb6f80e7c6f72edf55db1f40f1971c"} experiment-1 | {"level":"info","message":"POST /experiments? 201 117ms","method":"POST","requestID":"b7eb6f80e7c6f72edf55db1f40f1971c","responseTime":117,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/501b81f0-46e6-46bc-b687-f55ca6da14fb/signaling 200 7ms","method":"POST","requestID":"df1dbcb0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":7,"status":200,"url":"/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"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":"009f0c26-acdf-4fa0-b891-1edbe5aad32d"},{"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":"929a45b5-4c78-412c-8744-849dcbb6df14"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"a6e0ff00-f256-4815-a9bc-8260af3d55dc"}]},"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/501b81f0-46e6-46bc-b687-f55ca6da14fb"},{"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/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3926bc650516c3060d5d7160b2d55be6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.703653,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} 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":"df1f4350-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.531057,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} 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":"3926bc650516c3060d5d7160b2d55be6"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffcd64cfe-eca9-4b52-96a0-0fd82aa168ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:44.330009824Z"}]},"request_id":"9a3b8894-4ad2-4f3b-8ce6-1f336dbaf594","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.5100446} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3926bc650516c3060d5d7160b2d55be6"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"efaa141c-e3e8-4f39-b960-b9627bdda68f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.5145643} device-1 | {"level":"info","message":"GET /devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae? 200 13ms","method":"GET","requestID":"3926bc650516c3060d5d7160b2d55be6","responseTime":13,"status":200,"url":"/devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3926bc650516c3060d5d7160b2d55be6"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"506db1fa-b58c-428a-ac86-0ace161b1e9a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.514845} 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":"df1f4350-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d0a79b6b07801dd9dc5d3e928276c0ba","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.904297,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} 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":"d0a79b6b07801dd9dc5d3e928276c0ba"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F501b81f0-46e6-46bc-b687-f55ca6da14fb","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F501b81f0-46e6-46bc-b687-f55ca6da14fb","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:44.375724444Z"}]},"request_id":"9e6f1e78-52e5-4eee-b5f7-449ce504b803","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.5280652} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d0a79b6b07801dd9dc5d3e928276c0ba"},"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/3c18f0e4-73a1-441c-87a4-feebb6e93fae'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/3c18f0e4-73a1-441c-87a4-feebb6e93fae'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 32ms","method":"POST","requestID":"df1f4350-2a6b-11ef-8ad5-3d996a2c698c","responseTime":32,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/501b81f0-46e6-46bc-b687-f55ca6da14fb? 200 14ms","method":"GET","requestID":"d0a79b6b07801dd9dc5d3e928276c0ba","responseTime":14,"status":200,"url":"/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/501b81f0-46e6-46bc-b687-f55ca6da14fb? 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":"d0a79b6b07801dd9dc5d3e928276c0ba"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"3c18f0e4-73a1-441c-87a4-feebb6e93fae","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/3c18f0e4-73a1-441c-87a4-feebb6e93fae' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3c18f0e4-73a1-441c-87a4-feebb6e93fae","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8ccbf841020a150387b4cb086fba7a90","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/501b81f0-46e6-46bc-b687-f55ca6da14fb"},{"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/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/3c18f0e4-73a1-441c-87a4-feebb6e93fae"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"8ccbf841020a150387b4cb086fba7a90","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"8ccbf841020a150387b4cb086fba7a90"} device-1 | {"data":{"peerconnection":"3c18f0e4-73a1-441c-87a4-feebb6e93fae","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"3c18f0e4-73a1-441c-87a4-feebb6e93fae","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/3c18f0e4-73a1-441c-87a4-feebb6e93fae' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3c18f0e4-73a1-441c-87a4-feebb6e93fae","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"70814faaa94963785916df1a31d917bb","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/501b81f0-46e6-46bc-b687-f55ca6da14fb"},{"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/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/3c18f0e4-73a1-441c-87a4-feebb6e93fae"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3c18f0e4-73a1-441c-87a4-feebb6e93fae","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"31c89d6b-d1b5-43f7-85db-739dbcdeac58","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.679752} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.392772,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3c18f0e4-73a1-441c-87a4-feebb6e93fae","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/3c18f0e4-73a1-441c-87a4-feebb6e93fae","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":"df39d030-2a6b-11ef-8ad5-3d996a2c698c"},"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/3c18f0e4-73a1-441c-87a4-feebb6e93fae 200 8ms","method":"GET","requestID":"df39d030-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/peerconnections/3c18f0e4-73a1-441c-87a4-feebb6e93fae"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"70814faaa94963785916df1a31d917bb","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"70814faaa94963785916df1a31d917bb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0105c953d9d16b25e4de8b553f625290","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.332754,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} 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":"0105c953d9d16b25e4de8b553f625290"},"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/082b63b4-6b1e-4b77-813f-c699f666b06f"} experiment-1 | {"level":"info","message":"GET /experiments/082b63b4-6b1e-4b77-813f-c699f666b06f 200 9ms","method":"GET","requestID":"0105c953d9d16b25e4de8b553f625290","responseTime":9,"status":200,"url":"/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/082b63b4-6b1e-4b77-813f-c699f666b06f HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0105c953d9d16b25e4de8b553f625290"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a3e8445d9e6405b8499fcd672fecd3a7","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.692931,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} 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":"a3e8445d9e6405b8499fcd672fecd3a7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.63188,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3c18f0e4-73a1-441c-87a4-feebb6e93fae","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/3c18f0e4-73a1-441c-87a4-feebb6e93fae","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} 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":"df4b5c60-2a6b-11ef-8ad5-3d996a2c698c"},"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/3c18f0e4-73a1-441c-87a4-feebb6e93fae' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/3c18f0e4-73a1-441c-87a4-feebb6e93fae' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3c18f0e4-73a1-441c-87a4-feebb6e93fae","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} 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/501b81f0-46e6-46bc-b687-f55ca6da14fb"},{"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/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/3c18f0e4-73a1-441c-87a4-feebb6e93fae"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3c18f0e4-73a1-441c-87a4-feebb6e93fae': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3c18f0e4-73a1-441c-87a4-feebb6e93fae","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"2a306612-ac25-4fe1-b4aa-d46e18ae1bd3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.8036373} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8e880dd578dd59595afaf1118077e0e0","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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e2ea55ea-1b96-446d-a52e-aab14ae7aed3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.8047938} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"84c5ba5ac2067d67b19ced2ed4ae7aad","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":"df4b5c60-2a6b-11ef-8ad5-3d996a2c698c"},"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","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/501b81f0-46e6-46bc-b687-f55ca6da14fb"},{"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/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/3c18f0e4-73a1-441c-87a4-feebb6e93fae"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"3c18f0e4-73a1-441c-87a4-feebb6e93fae","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/3c18f0e4-73a1-441c-87a4-feebb6e93fae 204 29ms","method":"DELETE","requestID":"df4b5c60-2a6b-11ef-8ad5-3d996a2c698c","responseTime":29,"status":204,"url":"/peerconnections/3c18f0e4-73a1-441c-87a4-feebb6e93fae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F082b63b4-6b1e-4b77-813f-c699f666b06f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F082b63b4-6b1e-4b77-813f-c699f666b06f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"2f443b0a-d90c-41fa-9888-3fe618a95c2e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.8514814} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e53145e7-a9b7-4c3a-9bd4-d4f791945fab","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.8518145} 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":"a3e8445d9e6405b8499fcd672fecd3a7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/082b63b4-6b1e-4b77-813f-c699f666b06f HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.123","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a3e8445d9e6405b8499fcd672fecd3a7"} experiment-1 | {"level":"info","message":"DELETE /experiments/082b63b4-6b1e-4b77-813f-c699f666b06f 204 120ms","method":"DELETE","requestID":"a3e8445d9e6405b8499fcd672fecd3a7","responseTime":120,"status":204,"url":"/experiments/082b63b4-6b1e-4b77-813f-c699f666b06f"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1642","request_time":"1.994","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"1aa58975de04cd6fe316ac84847db9d9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 99ms","method":"POST","requestID":"8e880dd578dd59595afaf1118077e0e0","responseTime":99,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.102","http_referrer":"","http_user_agent":"node-fetch","requestID":"8e880dd578dd59595afaf1118077e0e0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 97ms","method":"POST","requestID":"84c5ba5ac2067d67b19ced2ed4ae7aad","responseTime":97,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.103","http_referrer":"","http_user_agent":"node-fetch","requestID":"84c5ba5ac2067d67b19ced2ed4ae7aad"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0703264cb00ffe3120f75bf21b435f74","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/fcd64cfe-eca9-4b52-96a0-0fd82aa168ae' closed"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1722","request_time":"0.580","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4419ec676615b8c9238f89da2df3076f"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.082891,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} 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":"0703264cb00ffe3120f75bf21b435f74"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a28aa723-f086-4875-9427-f522cb3dee4b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.9297872} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0703264cb00ffe3120f75bf21b435f74"},"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/501b81f0-46e6-46bc-b687-f55ca6da14fb' 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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"70c8e6c3-ed6f-4e42-bfa1-3483b5c893d7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.9353724} 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":"0703264cb00ffe3120f75bf21b435f74"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"3eb3e697-9c6e-44cd-b573-53aed305907a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.951634} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"abc34c33-bb02-4126-91cc-a40dc14afe0e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.951863} 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":"0703264cb00ffe3120f75bf21b435f74"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:46.951601316Z"}]},"request_id":"45b55794-3c0c-4ef9-a9ec-79079de2092f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.9624157} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0703264cb00ffe3120f75bf21b435f74"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0703264cb00ffe3120f75bf21b435f74"} device-1 | {"level":"info","message":"POST /devices? 201 57ms","method":"POST","requestID":"0703264cb00ffe3120f75bf21b435f74","responseTime":57,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3d68a29aef65db3964e48f75f21d2eeb","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.712941,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382826,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyNn0.wunPc-QFc-R-ifKgOJvCAX7UKfwlV86ISxDKfP90-Vs"} 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":"3d68a29aef65db3964e48f75f21d2eeb"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bce29f05-185a-4e07-a715-98bf4afa6520","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.9887874} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3d68a29aef65db3964e48f75f21d2eeb"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"29764e94-e8e6-43b5-aa3c-940297d7de2b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382826.9939187} 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":"3d68a29aef65db3964e48f75f21d2eeb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"6fe4575b-eff9-441e-89c8-d92f1ee11c9a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.0058231} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"131a9d4f-3ee5-4542-a0f5-6dff2ece1fdd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.0060291} 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":"3d68a29aef65db3964e48f75f21d2eeb"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:47.005790784Z"}]},"request_id":"c13d08e5-e87c-43c4-bbc5-79e0502c6e1a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.0101514} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3d68a29aef65db3964e48f75f21d2eeb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"3d68a29aef65db3964e48f75f21d2eeb","responseTime":41,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3d68a29aef65db3964e48f75f21d2eeb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"66a945ff6756f1a2ca671465906eaf54","responseTime":5,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"56cac5e8990f119e9bc2818626c6eb7f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.638305,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"66a945ff6756f1a2ca671465906eaf54"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.644378,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56cac5e8990f119e9bc2818626c6eb7f"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:47.005790784Z"}]},"request_id":"1f3a5663-1e48-4c81-aad2-006cd0f3e086","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.5013802} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"66a945ff6756f1a2ca671465906eaf54"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:46.951601316Z"}]},"request_id":"cd6b6110-be20-403f-9fca-b4f740362838","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.5024357} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56cac5e8990f119e9bc2818626c6eb7f"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a0c43ae6-daaa-41ea-bc82-42b85edd5a09","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.50713} 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":"66a945ff6756f1a2ca671465906eaf54"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5eade5e3-952c-44d4-952b-59a414557bc7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.5084038} 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":"56cac5e8990f119e9bc2818626c6eb7f"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:46.951601316Z"}]},"request_id":"e5b6fdfa-9067-4f0d-a0cd-818fd78ba899","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.51251} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56cac5e8990f119e9bc2818626c6eb7f"},"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/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d 200 23ms","method":"PATCH","requestID":"56cac5e8990f119e9bc2818626c6eb7f","responseTime":23,"status":200,"url":"/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d"} gateway-1 | {"time_local":"14/Jun/2024:16:33:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.031","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"56cac5e8990f119e9bc2818626c6eb7f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"98a2655d4a656d0565b458604d401a1b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.619371,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"98a2655d4a656d0565b458604d401a1b"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:47.005790784Z"}]},"request_id":"761da557-dc4d-4176-a222-73f9381553ca","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.5238707} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"66a945ff6756f1a2ca671465906eaf54"},"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/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8 200 36ms","method":"PATCH","requestID":"66a945ff6756f1a2ca671465906eaf54","responseTime":36,"status":200,"url":"/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8"} gateway-1 | {"time_local":"14/Jun/2024:16:33:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8 HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.043","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"66a945ff6756f1a2ca671465906eaf54"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3d16df79e2485511b9b3b589ff766b3c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.693083,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} 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":"3d16df79e2485511b9b3b589ff766b3c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.022","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"98a2655d4a656d0565b458604d401a1b"} device-1 | {"level":"info","message":"POST /devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d/websocket 200 18ms","method":"POST","requestID":"98a2655d4a656d0565b458604d401a1b","responseTime":18,"status":200,"url":"/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8/websocket 200 14ms","method":"POST","requestID":"3d16df79e2485511b9b3b589ff766b3c","responseTime":14,"status":200,"url":"/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:33:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.017","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3d16df79e2485511b9b3b589ff766b3c"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"525b2b23acbfad72271fada491643148","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.659772,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} 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":"525b2b23acbfad72271fada491643148"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:46.951601316Z"}]},"request_id":"d063af6a-66d4-49f9-9523-ab6abc227469","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.5775669} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"525b2b23acbfad72271fada491643148"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"525b2b23acbfad72271fada491643148"} device-1 | {"level":"info","message":"GET /devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d? 200 11ms","method":"GET","requestID":"525b2b23acbfad72271fada491643148","responseTime":11,"status":200,"url":"/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bd441e5b55c0f1c874826ca2da4b42b5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.649702,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} 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":"bd441e5b55c0f1c874826ca2da4b42b5"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:47.005790784Z"}]},"request_id":"f032b5a7-419b-427b-9514-778b7995d824","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.5938344} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bd441e5b55c0f1c874826ca2da4b42b5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bd441e5b55c0f1c874826ca2da4b42b5"} device-1 | {"level":"info","message":"GET /devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8? 200 12ms","method":"GET","requestID":"bd441e5b55c0f1c874826ca2da4b42b5","responseTime":12,"status":200,"url":"/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"953268dd81717a661dc153d0cab0cd9f","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:48592","level":"info","msg":"Received request.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.713512,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} 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":"953268dd81717a661dc153d0cab0cd9f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"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:48592","level":"info","msg":"Received request.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.631437,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} 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":"dfcce870-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.622603,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} 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":"dfcd0f80-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:46.951601316Z"}]},"request_id":"1ac3a848-99c4-4ec8-9c6e-157a511ca1d7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.652288} 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":"dfcce870-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:47.005790784Z"}]},"request_id":"d3288abf-49b7-468c-b2e5-c132c3b228ed","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.6534352} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dfcd0f80-2a6b-11ef-8ad5-3d996a2c698c"},"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/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d? 200 19ms","method":"GET","requestID":"dfcce870-2a6b-11ef-8ad5-3d996a2c698c","responseTime":19,"status":200,"url":"/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8? 200 18ms","method":"GET","requestID":"dfcd0f80-2a6b-11ef-8ad5-3d996a2c698c","responseTime":18,"status":200,"url":"/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"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/181751a3-8f7c-44ff-996c-c71fe40474fc"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.673157,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} 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":"dfd4fec0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.628457,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} 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":"dfd525d0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:46.951601316Z"}]},"request_id":"f49cadb3-50d9-4920-86d6-7b56ac0f77fa","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.7043922} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dfd4fec0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:47.005790784Z"}]},"request_id":"9bb6b383-bc09-461e-a5ad-e4594258304e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.705268} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dfd525d0-2a6b-11ef-8ad5-3d996a2c698c"},"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/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d? 200 17ms","method":"GET","requestID":"dfd4fec0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":17,"status":200,"url":"/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8? 200 17ms","method":"GET","requestID":"dfd525d0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":17,"status":200,"url":"/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.678275,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dfd80c00-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F181751a3-8f7c-44ff-996c-c71fe40474fc#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F181751a3-8f7c-44ff-996c-c71fe40474fc","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"f99f69b6-5c47-44dd-855d-db7e7241bf9e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.7172232} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f626d0ce-edcc-4d55-810a-bf9c4c8f6b43","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.7174988} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d/signaling 200 8ms","method":"POST","requestID":"dfd80c00-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d/signaling"} 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":"953268dd81717a661dc153d0cab0cd9f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":23}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":1.334093,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dfd992a0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} gateway-1 | {"time_local":"14/Jun/2024:16:33:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.130","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"953268dd81717a661dc153d0cab0cd9f"} experiment-1 | {"level":"info","message":"POST /experiments? 201 126ms","method":"POST","requestID":"953268dd81717a661dc153d0cab0cd9f","responseTime":126,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8/signaling 200 9ms","method":"POST","requestID":"dfd992a0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"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":"6657c04b-e0f1-4eac-b2cd-ca1f93d1085d"},{"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":"c6c588d2-6a94-45bb-a795-ef7f38581b9e"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"08e5d79c-f971-4b57-bd02-df2388e352d9"}]},"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/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d"},{"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/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"aadda25a6c6c7fd942e12f7c1b1a2470","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:48592","level":"info","msg":"Received request.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.666083,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} 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":"dfdb6760-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.813913,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aadda25a6c6c7fd942e12f7c1b1a2470"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:46.951601316Z"}]},"request_id":"9e5ecfdf-4880-4d78-b759-78549437e307","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.7447004} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"aadda25a6c6c7fd942e12f7c1b1a2470"},"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/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d? 200 13ms","method":"GET","requestID":"aadda25a6c6c7fd942e12f7c1b1a2470","responseTime":13,"status":200,"url":"/devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"aadda25a6c6c7fd942e12f7c1b1a2470"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"8e9bc3e3-bcbd-44b8-bfff-b6a057bac97d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.7496305} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1637028e-efc2-4c79-aa97-1f1520a0a1b5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.7499838} 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":"dfdb6760-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"598caabc3dce68b1bb701ca977a2242c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.915175,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} 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":"598caabc3dce68b1bb701ca977a2242c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:47.005790784Z"}]},"request_id":"b198aff5-38eb-441c-9c25-2a8d2fb8082e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.76082} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"598caabc3dce68b1bb701ca977a2242c"},"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/983dede1-0e2c-4f79-a600-831d59c3c15d'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/983dede1-0e2c-4f79-a600-831d59c3c15d'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 34ms","method":"POST","requestID":"dfdb6760-2a6b-11ef-8ad5-3d996a2c698c","responseTime":34,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"598caabc3dce68b1bb701ca977a2242c"} device-1 | {"level":"info","message":"GET /devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8? 200 16ms","method":"GET","requestID":"598caabc3dce68b1bb701ca977a2242c","responseTime":16,"status":200,"url":"/devices/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"983dede1-0e2c-4f79-a600-831d59c3c15d","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"983dede1-0e2c-4f79-a600-831d59c3c15d","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/983dede1-0e2c-4f79-a600-831d59c3c15d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"983dede1-0e2c-4f79-a600-831d59c3c15d","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"level":"info","message":"Successfully created peerconnections for 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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3250790cc116bea1acc533cf8e819e82","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/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d"},{"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/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/983dede1-0e2c-4f79-a600-831d59c3c15d"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"3250790cc116bea1acc533cf8e819e82","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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":"3250790cc116bea1acc533cf8e819e82"} device-1 | {"data":{"peerconnection":"983dede1-0e2c-4f79-a600-831d59c3c15d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"983dede1-0e2c-4f79-a600-831d59c3c15d","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/983dede1-0e2c-4f79-a600-831d59c3c15d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"983dede1-0e2c-4f79-a600-831d59c3c15d","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"afa52e0747cc9b3444d0b1192525b39c","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/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d"},{"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/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/983dede1-0e2c-4f79-a600-831d59c3c15d"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F983dede1-0e2c-4f79-a600-831d59c3c15d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"faa11ef1-a765-4d05-a887-5385c9c47310","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.852207} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.667947,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/983dede1-0e2c-4f79-a600-831d59c3c15d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/983dede1-0e2c-4f79-a600-831d59c3c15d","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":"dfeca570-2a6b-11ef-8ad5-3d996a2c698c"},"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/983dede1-0e2c-4f79-a600-831d59c3c15d 200 8ms","method":"GET","requestID":"dfeca570-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/peerconnections/983dede1-0e2c-4f79-a600-831d59c3c15d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 35ms","method":"POST","requestID":"afa52e0747cc9b3444d0b1192525b39c","responseTime":35,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.038","http_referrer":"","http_user_agent":"node-fetch","requestID":"afa52e0747cc9b3444d0b1192525b39c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9b0086cff19c69eabe6a1750de134910","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.699355,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} 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":"9b0086cff19c69eabe6a1750de134910"},"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/181751a3-8f7c-44ff-996c-c71fe40474fc"} gateway-1 | {"time_local":"14/Jun/2024:16:33:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/181751a3-8f7c-44ff-996c-c71fe40474fc HTTP/1.1","status": "200","body_bytes_sent":"1292","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9b0086cff19c69eabe6a1750de134910"} experiment-1 | {"level":"info","message":"GET /experiments/181751a3-8f7c-44ff-996c-c71fe40474fc 200 10ms","method":"GET","requestID":"9b0086cff19c69eabe6a1750de134910","responseTime":10,"status":200,"url":"/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"80b3445a73d2c5812b5709c104f3e7a8","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.655557,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} 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":"80b3445a73d2c5812b5709c104f3e7a8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.685911,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/983dede1-0e2c-4f79-a600-831d59c3c15d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/983dede1-0e2c-4f79-a600-831d59c3c15d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382827,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyN30.OG5j2xGntIPfRSrKsco4ArG8hp-YiOLCqN9I2KIvluA"} 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":"dffd6e50-2a6b-11ef-8ad5-3d996a2c698c"},"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/983dede1-0e2c-4f79-a600-831d59c3c15d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/983dede1-0e2c-4f79-a600-831d59c3c15d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"983dede1-0e2c-4f79-a600-831d59c3c15d","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ce4c39602bbdceddf902d796bd4282c9","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F983dede1-0e2c-4f79-a600-831d59c3c15d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F983dede1-0e2c-4f79-a600-831d59c3c15d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"3b05e98c-f8a9-44ac-80ee-ef8f190b0965","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.9715216} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cc95389c-ff86-4ed2-ad65-9199cac85e57","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382827.971864} 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/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d"},{"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/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/983dede1-0e2c-4f79-a600-831d59c3c15d"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d54e3aee34f3d99d540f4aa1dec88b54","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":"dffd6e50-2a6b-11ef-8ad5-3d996a2c698c"},"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":"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/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d"},{"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/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/983dede1-0e2c-4f79-a600-831d59c3c15d"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"983dede1-0e2c-4f79-a600-831d59c3c15d","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/983dede1-0e2c-4f79-a600-831d59c3c15d 204 29ms","method":"DELETE","requestID":"dffd6e50-2a6b-11ef-8ad5-3d996a2c698c","responseTime":29,"status":204,"url":"/peerconnections/983dede1-0e2c-4f79-a600-831d59c3c15d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F181751a3-8f7c-44ff-996c-c71fe40474fc': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F181751a3-8f7c-44ff-996c-c71fe40474fc","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"905ac029-b5be-47a0-9b26-29a127037878","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.010532} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"79350f03-9bf1-40ed-90e1-ed38fa94d0f9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.0107746} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"80b3445a73d2c5812b5709c104f3e7a8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"} gateway-1 | {"time_local":"14/Jun/2024:16:33:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/181751a3-8f7c-44ff-996c-c71fe40474fc HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.115","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"80b3445a73d2c5812b5709c104f3e7a8"} experiment-1 | {"level":"info","message":"DELETE /experiments/181751a3-8f7c-44ff-996c-c71fe40474fc 204 113ms","method":"DELETE","requestID":"80b3445a73d2c5812b5709c104f3e7a8","responseTime":113,"status":204,"url":"/experiments/181751a3-8f7c-44ff-996c-c71fe40474fc"} gateway-1 | {"time_local":"14/Jun/2024:16:33:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1724","request_time":"0.523","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"1ad12ac153affe3f5cbfb0ee5072fe33"} gateway-1 | {"time_local":"14/Jun/2024:16:33:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1722","request_time":"0.515","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"c6032a609f45335aa3a0c1b3db2ee7e8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 93ms","method":"POST","requestID":"ce4c39602bbdceddf902d796bd4282c9","responseTime":93,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.096","http_referrer":"","http_user_agent":"node-fetch","requestID":"ce4c39602bbdceddf902d796bd4282c9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 92ms","method":"POST","requestID":"d54e3aee34f3d99d540f4aa1dec88b54","responseTime":92,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.099","http_referrer":"","http_user_agent":"node-fetch","requestID":"d54e3aee34f3d99d540f4aa1dec88b54"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2ad8e16ae60a70229c92b78ecb027e5b","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/61fcb8f4-9efd-45d1-b464-e5d5ff40e7d8' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.923597,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} 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":"2ad8e16ae60a70229c92b78ecb027e5b"},"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/4faca9ca-5cd9-4ed4-88ab-349e3cd8b10d' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f53b42b1-520b-4f6e-84cc-fbf3e1573fb2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.0970676} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2ad8e16ae60a70229c92b78ecb027e5b"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d1a54840-53fa-425f-9a21-48cebb0926d7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.1027207} 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":"2ad8e16ae60a70229c92b78ecb027e5b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"d1356c8f-7247-4a9a-a118-4ad3ee7009d8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.1135767} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"012bf2f4-1af6-4739-959e-e50dd4ec664e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.1138012} 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":"2ad8e16ae60a70229c92b78ecb027e5b"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:48.113541976Z"}]},"request_id":"d3777ccc-b5f4-4f1a-a4f6-910991ef3cd6","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.1183984} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2ad8e16ae60a70229c92b78ecb027e5b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.059","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2ad8e16ae60a70229c92b78ecb027e5b"} device-1 | {"level":"info","message":"POST /devices? 201 51ms","method":"POST","requestID":"2ad8e16ae60a70229c92b78ecb027e5b","responseTime":51,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"447c70485a8da62020e05b3d2a36bf07","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.990417,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} 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":"447c70485a8da62020e05b3d2a36bf07"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4d5fdc1b-6a53-4ace-90e0-c851050e8ee0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.1468976} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"447c70485a8da62020e05b3d2a36bf07"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4b702057-5584-4d24-86fa-e59725f44321","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.152365} 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":"447c70485a8da62020e05b3d2a36bf07"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"da2584f6-f312-44fc-9e39-f3697f189f86","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.1681705} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4d9ef04c-da33-41cc-a935-a98e02f64ea7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.1683803} 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":"447c70485a8da62020e05b3d2a36bf07"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:48.168136135Z"}]},"request_id":"84d1e6cb-4069-4d77-a525-2c9652d14543","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.173536} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"447c70485a8da62020e05b3d2a36bf07"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"447c70485a8da62020e05b3d2a36bf07"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"447c70485a8da62020e05b3d2a36bf07","responseTime":47,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7685e26458c2135e4dc8264b50813abd","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.70474,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} 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":"7685e26458c2135e4dc8264b50813abd"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:48.168136135Z"}]},"request_id":"0d2f4ed1-9909-4ab9-92a2-dad16df11329","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.6614718} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7685e26458c2135e4dc8264b50813abd"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"61942785-7902-4d8e-81fc-337ab59dc592","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.6666038} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA","level":"info","message":"auth send jwt"} 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":"7685e26458c2135e4dc8264b50813abd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ad9044603d1ed5387fbcb232a9d9bbc2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.694534,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} 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":"ad9044603d1ed5387fbcb232a9d9bbc2"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:48.168136135Z"}]},"request_id":"dec543b6-8de3-44ad-968f-e4650d02065d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.6786866} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7685e26458c2135e4dc8264b50813abd"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:48.113541976Z"}]},"request_id":"6c33961a-b049-4dfa-b393-86e5f8a89100","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.6799443} device-1 | {"level":"info","message":"patchDevicesByDeviceId 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":"ad9044603d1ed5387fbcb232a9d9bbc2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} gateway-1 | {"time_local":"14/Jun/2024:16:33:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d98bb567-60e3-4958-82da-7af2ecf9f96d HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.033","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"7685e26458c2135e4dc8264b50813abd"} device-1 | {"level":"info","message":"PATCH /devices/d98bb567-60e3-4958-82da-7af2ecf9f96d 200 29ms","method":"PATCH","requestID":"7685e26458c2135e4dc8264b50813abd","responseTime":29,"status":200,"url":"/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fc4e9503252374329f6f61ff14f51b01","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bc8c61a4-e7e9-4d17-bf7f-0f8dce6daacd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.685905} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} 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":"ad9044603d1ed5387fbcb232a9d9bbc2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.713001,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} 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":"fc4e9503252374329f6f61ff14f51b01"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:48.113541976Z"}]},"request_id":"a26c2d3a-a80a-4e41-9039-35637b68acfc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.6955628} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ad9044603d1ed5387fbcb232a9d9bbc2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe HTTP/1.1","status": "200","body_bytes_sent":"847","request_time":"0.032","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ad9044603d1ed5387fbcb232a9d9bbc2"} device-1 | {"level":"info","message":"PATCH /devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe 200 28ms","method":"PATCH","requestID":"ad9044603d1ed5387fbcb232a9d9bbc2","responseTime":28,"status":200,"url":"/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cb73ba6ddfd79733cf2b4aed35d28088","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d98bb567-60e3-4958-82da-7af2ecf9f96d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.022","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"fc4e9503252374329f6f61ff14f51b01"} device-1 | {"level":"info","message":"POST /devices/d98bb567-60e3-4958-82da-7af2ecf9f96d/websocket 200 18ms","method":"POST","requestID":"fc4e9503252374329f6f61ff14f51b01","responseTime":18,"status":200,"url":"/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d/websocket"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.893111,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cb73ba6ddfd79733cf2b4aed35d28088"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.016","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"cb73ba6ddfd79733cf2b4aed35d28088"} device-1 | {"level":"info","message":"POST /devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe/websocket 200 11ms","method":"POST","requestID":"cb73ba6ddfd79733cf2b4aed35d28088","responseTime":11,"status":200,"url":"/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"dffd05600581d72733ff38e2ac64496e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.656729,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dffd05600581d72733ff38e2ac64496e"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:48.113541976Z"}]},"request_id":"47358bcc-40c3-47a9-bb4a-dca0845e5ff5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.7470486} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dffd05600581d72733ff38e2ac64496e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dffd05600581d72733ff38e2ac64496e"} device-1 | {"level":"info","message":"GET /devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe? 200 12ms","method":"GET","requestID":"dffd05600581d72733ff38e2ac64496e","responseTime":12,"status":200,"url":"/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fa185f3685b5579bfee1c3680db9000a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.656483,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} 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":"fa185f3685b5579bfee1c3680db9000a"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:48.168136135Z"}]},"request_id":"688d4d85-b451-4dfd-ae39-2e6707711b4a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.7615924} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa185f3685b5579bfee1c3680db9000a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d98bb567-60e3-4958-82da-7af2ecf9f96d? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fa185f3685b5579bfee1c3680db9000a"} device-1 | {"level":"info","message":"GET /devices/d98bb567-60e3-4958-82da-7af2ecf9f96d? 200 10ms","method":"GET","requestID":"fa185f3685b5579bfee1c3680db9000a","responseTime":10,"status":200,"url":"/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2c65d343cef6774fca4b642fcbb5adf3","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:48592","level":"info","msg":"Received request.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.680323,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"388","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2c65d343cef6774fca4b642fcbb5adf3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"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:48592","level":"info","msg":"Received request.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.955743,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} 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":"e07e3710-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.607081,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} 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":"e07e5e20-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:48.113541976Z"}]},"request_id":"03af2651-df25-49c9-845d-97a835e5ea35","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.8086958} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e07e3710-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:48.168136135Z"}]},"request_id":"65daaf4a-012f-4390-97f5-042e435d5294","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.809381} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e07e5e20-2a6b-11ef-8ad5-3d996a2c698c"},"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/d008b8ae-9fef-4999-97a9-7ddef94b99fe? 200 12ms","method":"GET","requestID":"e07e3710-2a6b-11ef-8ad5-3d996a2c698c","responseTime":12,"status":200,"url":"/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d98bb567-60e3-4958-82da-7af2ecf9f96d? 200 11ms","method":"GET","requestID":"e07e5e20-2a6b-11ef-8ad5-3d996a2c698c","responseTime":11,"status":200,"url":"/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"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/3b7e14f5-f87c-4077-963e-5b97697c9484"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.681464,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e08737c0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.923611,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} 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":"e0875ed0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:48.113541976Z"}]},"request_id":"462a930a-693b-4724-81e3-a9315ba78a31","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.8718793} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e08737c0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:48.168136135Z"}]},"request_id":"731b9b3c-0df6-4dff-8880-23c864b17d72","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.873003} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0875ed0-2a6b-11ef-8ad5-3d996a2c698c"},"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/d008b8ae-9fef-4999-97a9-7ddef94b99fe? 200 18ms","method":"GET","requestID":"e08737c0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":18,"status":200,"url":"/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d98bb567-60e3-4958-82da-7af2ecf9f96d? 200 18ms","method":"GET","requestID":"e0875ed0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":18,"status":200,"url":"/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3b7e14f5-f87c-4077-963e-5b97697c9484#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3b7e14f5-f87c-4077-963e-5b97697c9484","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"e8c5bdfe-c3c5-4873-ad2f-51706ef8a395","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.8819773} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b5fcea6e-2191-4c2c-ac26-3722f2d5e221","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.882276} 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":"2c65d343cef6774fca4b642fcbb5adf3"},"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:48592","level":"info","msg":"Received request.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.853396,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e08a6c10-2a6b-11ef-8ad5-3d996a2c698c"},"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/d008b8ae-9fef-4999-97a9-7ddef94b99fe/signaling 200 8ms","method":"POST","requestID":"e08a6c10-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:33:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.128","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2c65d343cef6774fca4b642fcbb5adf3"} experiment-1 | {"level":"info","message":"POST /experiments? 201 125ms","method":"POST","requestID":"2c65d343cef6774fca4b642fcbb5adf3","responseTime":125,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.670972,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e08c40d0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9570b8b79d8ba45569c15769bc2964c0","responseTime":2,"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/d98bb567-60e3-4958-82da-7af2ecf9f96d/signaling 200 9ms","method":"POST","requestID":"e08c40d0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d/signaling"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.666747,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"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":"df21c2ad-061e-407c-b269-c500812a0cbb"},{"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":"d7912e32-c280-4dea-ada6-d6620270c480"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"94789acb-caea-46f9-97f7-c704b9c1ae40"}]},"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/d98bb567-60e3-4958-82da-7af2ecf9f96d"},{"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/d008b8ae-9fef-4999-97a9-7ddef94b99fe"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} 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":"9570b8b79d8ba45569c15769bc2964c0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd008b8ae-9fef-4999-97a9-7ddef94b99fe","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:48.113541976Z"}]},"request_id":"ba9a6b1f-5fb9-4334-9a89-c4a0d3863011","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.9076712} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9570b8b79d8ba45569c15769bc2964c0"},"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:48592","level":"info","msg":"Received request.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.003952,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} 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":"e08e3ca0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9570b8b79d8ba45569c15769bc2964c0"} device-1 | {"level":"info","message":"GET /devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe? 200 13ms","method":"GET","requestID":"9570b8b79d8ba45569c15769bc2964c0","responseTime":13,"status":200,"url":"/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a17f13913c2114d710863cdb7c63daef","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"070118ee-35f7-4b89-920e-8c966d320e97","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.9191172} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"98ecbaf3-72db-4081-9467-a3e1cb6a6b0a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.9192815} 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":"e08e3ca0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.723362,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382828,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOH0.DuzJhSjpyegK9dEsvbgL_O5E_rR1z9rX5iWjpZJqlLA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a17f13913c2114d710863cdb7c63daef"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd98bb567-60e3-4958-82da-7af2ecf9f96d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:48.168136135Z"}]},"request_id":"b6dee9dd-cf8c-4830-92fb-27c938ee1946","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382828.9263272} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a17f13913c2114d710863cdb7c63daef"},"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/dba42cc4-4dff-40bc-8497-28c23f2bd6a9'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/dba42cc4-4dff-40bc-8497-28c23f2bd6a9'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 28ms","method":"POST","requestID":"e08e3ca0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":28,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d98bb567-60e3-4958-82da-7af2ecf9f96d? HTTP/1.1","status": "200","body_bytes_sent":"846","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a17f13913c2114d710863cdb7c63daef"} device-1 | {"level":"info","message":"GET /devices/d98bb567-60e3-4958-82da-7af2ecf9f96d? 200 17ms","method":"GET","requestID":"a17f13913c2114d710863cdb7c63daef","responseTime":17,"status":200,"url":"/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"dba42cc4-4dff-40bc-8497-28c23f2bd6a9","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"dba42cc4-4dff-40bc-8497-28c23f2bd6a9","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/dba42cc4-4dff-40bc-8497-28c23f2bd6a9' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"dba42cc4-4dff-40bc-8497-28c23f2bd6a9","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"14f9d41a61f3ba6fb34dd8eb050679b6","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/d98bb567-60e3-4958-82da-7af2ecf9f96d"},{"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/d008b8ae-9fef-4999-97a9-7ddef94b99fe"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/dba42cc4-4dff-40bc-8497-28c23f2bd6a9"}}},"level":"info","message":"received a callback"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"level":"info","message":"Successfully created peerconnections for experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 11ms","method":"POST","requestID":"14f9d41a61f3ba6fb34dd8eb050679b6","responseTime":11,"status":200,"url":"/callbacks/experiment"} device-1 | {"data":{"peerconnection":"dba42cc4-4dff-40bc-8497-28c23f2bd6a9","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"14f9d41a61f3ba6fb34dd8eb050679b6"} device-1 | {"data":{"peerconnection":"dba42cc4-4dff-40bc-8497-28c23f2bd6a9","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/dba42cc4-4dff-40bc-8497-28c23f2bd6a9' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"dba42cc4-4dff-40bc-8497-28c23f2bd6a9","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"57cfedbb491e32f557b5d78608e867ae","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/d98bb567-60e3-4958-82da-7af2ecf9f96d"},{"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/d008b8ae-9fef-4999-97a9-7ddef94b99fe"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/dba42cc4-4dff-40bc-8497-28c23f2bd6a9"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:49Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdba42cc4-4dff-40bc-8497-28c23f2bd6a9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"18d2e2a6-7e55-4212-b8bd-6db313674ec8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.0082667} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.26161,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/dba42cc4-4dff-40bc-8497-28c23f2bd6a9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/dba42cc4-4dff-40bc-8497-28c23f2bd6a9","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":"e09d09b0-2a6b-11ef-8ad5-3d996a2c698c"},"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/dba42cc4-4dff-40bc-8497-28c23f2bd6a9 200 8ms","method":"GET","requestID":"e09d09b0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/peerconnections/dba42cc4-4dff-40bc-8497-28c23f2bd6a9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 26ms","method":"POST","requestID":"57cfedbb491e32f557b5d78608e867ae","responseTime":26,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch","requestID":"57cfedbb491e32f557b5d78608e867ae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOX0.2rfplpZ7ogyUqQdjUCNB8WFHX30qvwxRakkRxmG-XdA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"493f77f2f9e2d32368e85a1b0d604dc7","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:49Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.17971,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382829,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOX0.2rfplpZ7ogyUqQdjUCNB8WFHX30qvwxRakkRxmG-XdA"} 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":"493f77f2f9e2d32368e85a1b0d604dc7"},"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/3b7e14f5-f87c-4077-963e-5b97697c9484"} experiment-1 | {"level":"info","message":"GET /experiments/3b7e14f5-f87c-4077-963e-5b97697c9484 200 9ms","method":"GET","requestID":"493f77f2f9e2d32368e85a1b0d604dc7","responseTime":9,"status":200,"url":"/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"} gateway-1 | {"time_local":"14/Jun/2024:16:33:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/3b7e14f5-f87c-4077-963e-5b97697c9484 HTTP/1.1","status": "200","body_bytes_sent":"1292","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"493f77f2f9e2d32368e85a1b0d604dc7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOX0.2rfplpZ7ogyUqQdjUCNB8WFHX30qvwxRakkRxmG-XdA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5ffcabe48e96641777e1907d3cf03050","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:49Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.736617,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382829,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOX0.2rfplpZ7ogyUqQdjUCNB8WFHX30qvwxRakkRxmG-XdA"} 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":"5ffcabe48e96641777e1907d3cf03050"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:49Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.659714,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/dba42cc4-4dff-40bc-8497-28c23f2bd6a9","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/dba42cc4-4dff-40bc-8497-28c23f2bd6a9","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382829,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOX0.2rfplpZ7ogyUqQdjUCNB8WFHX30qvwxRakkRxmG-XdA"} 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":"e0ae6ed0-2a6b-11ef-8ad5-3d996a2c698c"},"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/dba42cc4-4dff-40bc-8497-28c23f2bd6a9' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/dba42cc4-4dff-40bc-8497-28c23f2bd6a9' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"dba42cc4-4dff-40bc-8497-28c23f2bd6a9","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9782e447a12e0266b4668f1e65fdb6e2","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdba42cc4-4dff-40bc-8497-28c23f2bd6a9': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdba42cc4-4dff-40bc-8497-28c23f2bd6a9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"ceb433d0-5a25-412a-9793-4643504f891d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.1320276} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","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/d98bb567-60e3-4958-82da-7af2ecf9f96d"},{"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/d008b8ae-9fef-4999-97a9-7ddef94b99fe"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/dba42cc4-4dff-40bc-8497-28c23f2bd6a9"}}},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c3bcab7f-8acf-4907-a9a2-abb944451ac0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.1324584} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b9640f20b2e4fa3020cdbcaa0e1235fb","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":"e0ae6ed0-2a6b-11ef-8ad5-3d996a2c698c"},"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","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/d98bb567-60e3-4958-82da-7af2ecf9f96d"},{"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/d008b8ae-9fef-4999-97a9-7ddef94b99fe"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/dba42cc4-4dff-40bc-8497-28c23f2bd6a9"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"dba42cc4-4dff-40bc-8497-28c23f2bd6a9","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/dba42cc4-4dff-40bc-8497-28c23f2bd6a9 204 36ms","method":"DELETE","requestID":"e0ae6ed0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":36,"status":204,"url":"/peerconnections/dba42cc4-4dff-40bc-8497-28c23f2bd6a9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3b7e14f5-f87c-4077-963e-5b97697c9484': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3b7e14f5-f87c-4077-963e-5b97697c9484","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"8b20a23b-641d-46db-80c8-dabc677922d2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.1738045} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8841fd05-840e-4aa2-84b0-04a6c01b4128","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.1741087} 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":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5ffcabe48e96641777e1907d3cf03050"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"} gateway-1 | {"time_local":"14/Jun/2024:16:33:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/3b7e14f5-f87c-4077-963e-5b97697c9484 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.116","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5ffcabe48e96641777e1907d3cf03050"} gateway-1 | {"time_local":"14/Jun/2024:16:33:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1722","request_time":"0.515","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"23964891b3b4f52390e779f91f49ef39"} experiment-1 | {"level":"info","message":"DELETE /experiments/3b7e14f5-f87c-4077-963e-5b97697c9484 204 114ms","method":"DELETE","requestID":"5ffcabe48e96641777e1907d3cf03050","responseTime":114,"status":204,"url":"/experiments/3b7e14f5-f87c-4077-963e-5b97697c9484"} gateway-1 | {"time_local":"14/Jun/2024:16:33:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1724","request_time":"0.506","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"7d20468daa29ccad92eadab552b98453"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 91ms","method":"POST","requestID":"9782e447a12e0266b4668f1e65fdb6e2","responseTime":91,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.095","http_referrer":"","http_user_agent":"node-fetch","requestID":"9782e447a12e0266b4668f1e65fdb6e2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 90ms","method":"POST","requestID":"b9640f20b2e4fa3020cdbcaa0e1235fb","responseTime":90,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.096","http_referrer":"","http_user_agent":"node-fetch","requestID":"b9640f20b2e4fa3020cdbcaa0e1235fb"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d008b8ae-9fef-4999-97a9-7ddef94b99fe' closed"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOX0.2rfplpZ7ogyUqQdjUCNB8WFHX30qvwxRakkRxmG-XdA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"040b221e93e3c4903d6a166dc8854bcf","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:49Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.001849,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382829,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOX0.2rfplpZ7ogyUqQdjUCNB8WFHX30qvwxRakkRxmG-XdA"} 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":"040b221e93e3c4903d6a166dc8854bcf"},"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/d98bb567-60e3-4958-82da-7af2ecf9f96d' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee2798-0f7e-4dba-9b53-79cf01830a83","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"717398ea-ac25-4f40-8fc9-69b63bbc705e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.2547302} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"040b221e93e3c4903d6a166dc8854bcf"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3fe34fa2-a740-42f9-abc9-a487e4bf54ae","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.2612083} 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":"040b221e93e3c4903d6a166dc8854bcf"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee2798-0f7e-4dba-9b53-79cf01830a83","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"609a4e48-9967-4a83-a283-b512f815c3d0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.27214} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e1d2c7da-8e01-4c56-8ba6-51b6f4b07233","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.272419} 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":"040b221e93e3c4903d6a166dc8854bcf"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee2798-0f7e-4dba-9b53-79cf01830a83","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee2798-0f7e-4dba-9b53-79cf01830a83","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:49.272106378Z"}]},"request_id":"dac38b41-a409-4745-a3c8-aadf6b36893c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.27733} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"040b221e93e3c4903d6a166dc8854bcf"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"040b221e93e3c4903d6a166dc8854bcf"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"040b221e93e3c4903d6a166dc8854bcf","responseTime":49,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOX0.2rfplpZ7ogyUqQdjUCNB8WFHX30qvwxRakkRxmG-XdA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a027836b60d5fd0be5ed3ce1e449ad8c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:49Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.739313,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382829,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgyOX0.2rfplpZ7ogyUqQdjUCNB8WFHX30qvwxRakkRxmG-XdA"} 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":"a027836b60d5fd0be5ed3ce1e449ad8c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1db14ef2-bc79-479d-964a-d76d12b73ba6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"60529373-671e-4f28-b98f-b469069b3ecb","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.3036823} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a027836b60d5fd0be5ed3ce1e449ad8c"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"09fad961-fe19-4d8e-b262-b92507a78478","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.3092003} 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":"a027836b60d5fd0be5ed3ce1e449ad8c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1db14ef2-bc79-479d-964a-d76d12b73ba6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"092c4046-a8a3-4c50-839e-6c9a3ba1139c","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.3246982} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"47ed782e-a9ae-4022-82bb-4e78a484667d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.324949} 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":"a027836b60d5fd0be5ed3ce1e449ad8c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1db14ef2-bc79-479d-964a-d76d12b73ba6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1db14ef2-bc79-479d-964a-d76d12b73ba6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:49.324665457Z"}]},"request_id":"e5ecddea-82f4-4fb7-bad7-298bb2eaaaf0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382829.3297272} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a027836b60d5fd0be5ed3ce1e449ad8c"},"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":"a027836b60d5fd0be5ed3ce1e449ad8c","responseTime":46,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a027836b60d5fd0be5ed3ce1e449ad8c"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0ab822f8854dcfe9522129f8e8320af4","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0ab822f8854dcfe9522129f8e8320af4"} device-1 | {"level":"info","message":"OPTIONS /devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83/websocket 200 1ms","method":"OPTIONS","requestID":"0ab822f8854dcfe9522129f8e8320af4","responseTime":1,"status":200,"url":"/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"75a18ed8f658a3c3e7b06a39d8ae2b3d","responseTime":4,"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"593a4b58971b3a231e2575983e0470b2","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.98788,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} gateway-1 | {"time_local":"14/Jun/2024:16:33:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1db14ef2-bc79-479d-964a-d76d12b73ba6/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":"593a4b58971b3a231e2575983e0470b2"} device-1 | {"level":"info","message":"OPTIONS /devices/1db14ef2-bc79-479d-964a-d76d12b73ba6/websocket 200 1ms","method":"OPTIONS","requestID":"593a4b58971b3a231e2575983e0470b2","responseTime":1,"status":200,"url":"/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6/websocket"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} 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":"75a18ed8f658a3c3e7b06a39d8ae2b3d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e1a5414d0993eb6dd4f6667cb2bbfea0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.710123,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} 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":"e1a5414d0993eb6dd4f6667cb2bbfea0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83/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":"75a18ed8f658a3c3e7b06a39d8ae2b3d"} device-1 | {"level":"info","message":"POST /devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83/websocket 200 27ms","method":"POST","requestID":"75a18ed8f658a3c3e7b06a39d8ae2b3d","responseTime":27,"status":200,"url":"/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/1db14ef2-bc79-479d-964a-d76d12b73ba6/websocket 200 25ms","method":"POST","requestID":"e1a5414d0993eb6dd4f6667cb2bbfea0","responseTime":25,"status":200,"url":"/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6/websocket"} gateway-1 | {"time_local":"14/Jun/2024:16:33:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1db14ef2-bc79-479d-964a-d76d12b73ba6/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.029","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e1a5414d0993eb6dd4f6667cb2bbfea0"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5134ed02a662115aa008253a8b597224","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669812,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} 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":"5134ed02a662115aa008253a8b597224"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee2798-0f7e-4dba-9b53-79cf01830a83","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee2798-0f7e-4dba-9b53-79cf01830a83","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:49.272106378Z"}]},"request_id":"a05632cb-a0d6-421a-8fda-e320bf4044a1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.3611326} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5134ed02a662115aa008253a8b597224"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83? 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":"5134ed02a662115aa008253a8b597224"} device-1 | {"level":"info","message":"GET /devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83? 200 10ms","method":"GET","requestID":"5134ed02a662115aa008253a8b597224","responseTime":10,"status":200,"url":"/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a055788e5dc4cb3034861cf5cd8589f0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.708468,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} 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":"a055788e5dc4cb3034861cf5cd8589f0"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1db14ef2-bc79-479d-964a-d76d12b73ba6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1db14ef2-bc79-479d-964a-d76d12b73ba6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:49.324665457Z"}]},"request_id":"e167fa8b-88f6-4553-9867-18d2540ef926","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.376016} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a055788e5dc4cb3034861cf5cd8589f0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1db14ef2-bc79-479d-964a-d76d12b73ba6? 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":"a055788e5dc4cb3034861cf5cd8589f0"} device-1 | {"level":"info","message":"GET /devices/1db14ef2-bc79-479d-964a-d76d12b73ba6? 200 10ms","method":"GET","requestID":"a055788e5dc4cb3034861cf5cd8589f0","responseTime":10,"status":200,"url":"/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"419dfccd0b02af9e9204295fc87a7909","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:48592","level":"info","msg":"Received request.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.715267,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} 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":"419dfccd0b02af9e9204295fc87a7909"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"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:48592","level":"info","msg":"Received request.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.665095,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} 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":"e20c9f40-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.678374,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} 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":"e20cc650-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee2798-0f7e-4dba-9b53-79cf01830a83","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee2798-0f7e-4dba-9b53-79cf01830a83","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:49.272106378Z"}]},"request_id":"5a86abcb-b724-4b8e-a377-cd15ba557574","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.420542} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e20c9f40-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1db14ef2-bc79-479d-964a-d76d12b73ba6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1db14ef2-bc79-479d-964a-d76d12b73ba6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:49.324665457Z"}]},"request_id":"f415e385-6cd5-4adf-a9de-620699b897b8","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.4218469} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e20cc650-2a6b-11ef-8ad5-3d996a2c698c"},"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/e6ee2798-0f7e-4dba-9b53-79cf01830a83? 200 13ms","method":"GET","requestID":"e20c9f40-2a6b-11ef-8ad5-3d996a2c698c","responseTime":13,"status":200,"url":"/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1db14ef2-bc79-479d-964a-d76d12b73ba6? 200 14ms","method":"GET","requestID":"e20cc650-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"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:48592","level":"info","msg":"Received request.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.704521,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} 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":"e2163c30-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.651107,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2166340-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee2798-0f7e-4dba-9b53-79cf01830a83","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee2798-0f7e-4dba-9b53-79cf01830a83","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:49.272106378Z"}]},"request_id":"53b18d6d-c06b-44fb-a610-3ab8c69e41be","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.4844346} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2163c30-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1db14ef2-bc79-479d-964a-d76d12b73ba6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1db14ef2-bc79-479d-964a-d76d12b73ba6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:49.324665457Z"}]},"request_id":"e2931819-9838-4cb6-b8ab-e7ac1029843f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.4855614} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2166340-2a6b-11ef-8ad5-3d996a2c698c"},"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/e6ee2798-0f7e-4dba-9b53-79cf01830a83? 200 14ms","method":"GET","requestID":"e2163c30-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/1db14ef2-bc79-479d-964a-d76d12b73ba6? 200 14ms","method":"GET","requestID":"e2166340-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.723491,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e218fb50-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F34bcd99b-32ca-413f-9ce6-6c45e9da9b05#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F34bcd99b-32ca-413f-9ce6-6c45e9da9b05","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"5adb7b47-64a5-4a65-9d41-996d311c2082","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.5005386} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"125b82c7-4f8c-4768-bb41-8c7da38678f6","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.501142} 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":"419dfccd0b02af9e9204295fc87a7909"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} device-1 | {"level":"info","message":"POST /devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83/signaling 200 11ms","method":"POST","requestID":"e218fb50-2a6b-11ef-8ad5-3d996a2c698c","responseTime":11,"status":200,"url":"/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.979475,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} gateway-1 | {"time_local":"14/Jun/2024:16:33:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.129","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"419dfccd0b02af9e9204295fc87a7909"} experiment-1 | {"level":"info","message":"POST /experiments? 201 126ms","method":"POST","requestID":"419dfccd0b02af9e9204295fc87a7909","responseTime":126,"status":201,"url":"/experiments?"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e21ad010-2a6b-11ef-8ad5-3d996a2c698c"},"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/1db14ef2-bc79-479d-964a-d76d12b73ba6/signaling 200 9ms","method":"POST","requestID":"e21ad010-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"483b0de9-bbcc-4b92-aaf2-f53eab75b1af"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"be514d6d-5704-40c3-b449-43bd3f41e02d"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"47381b72-29c2-4b20-b132-6c755a9fedd7"}]},"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/e6ee2798-0f7e-4dba-9b53-79cf01830a83"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1c1aa79d5258b026faa4e33580a9d739","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:48592","level":"info","msg":"Received request.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.129721,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} 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":"e21c7dc0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.167581,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} 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":"1c1aa79d5258b026faa4e33580a9d739"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee2798-0f7e-4dba-9b53-79cf01830a83","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee2798-0f7e-4dba-9b53-79cf01830a83","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:49.272106378Z"}]},"request_id":"aacadc8b-3ab3-473f-be50-d95a26ed61f4","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.5253034} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1c1aa79d5258b026faa4e33580a9d739"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1c1aa79d5258b026faa4e33580a9d739"} device-1 | {"level":"info","message":"GET /devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83? 200 11ms","method":"GET","requestID":"1c1aa79d5258b026faa4e33580a9d739","responseTime":11,"status":200,"url":"/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83?"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"be2ae1a4-476f-46d9-9f24-8a28fb5572dc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.5290956} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f09fc6a9-c0a8-4429-bfc4-8e65ba66ecaf","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.5292642} 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":"e21c7dc0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5e7c1d6d019e56224fae7133c882e247","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.743105,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} 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":"5e7c1d6d019e56224fae7133c882e247"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1db14ef2-bc79-479d-964a-d76d12b73ba6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1db14ef2-bc79-479d-964a-d76d12b73ba6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:49.324665457Z"}]},"request_id":"5fce7a11-a495-432e-a04f-2ebd88cce16a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.539861} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e7c1d6d019e56224fae7133c882e247"},"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/7e100691-44cb-4e75-bdcc-1ed30a767f60'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/7e100691-44cb-4e75-bdcc-1ed30a767f60'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 29ms","method":"POST","requestID":"e21c7dc0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":29,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1db14ef2-bc79-479d-964a-d76d12b73ba6? 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":"5e7c1d6d019e56224fae7133c882e247"} device-1 | {"level":"info","message":"GET /devices/1db14ef2-bc79-479d-964a-d76d12b73ba6? 200 13ms","method":"GET","requestID":"5e7c1d6d019e56224fae7133c882e247","responseTime":13,"status":200,"url":"/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7e100691-44cb-4e75-bdcc-1ed30a767f60' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7e100691-44cb-4e75-bdcc-1ed30a767f60","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0a3ec211665e2f3ac5546ca74774510e","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/e6ee2798-0f7e-4dba-9b53-79cf01830a83"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/7e100691-44cb-4e75-bdcc-1ed30a767f60"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"0a3ec211665e2f3ac5546ca74774510e","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"0a3ec211665e2f3ac5546ca74774510e"} device-1 | {"data":{"peerconnection":"7e100691-44cb-4e75-bdcc-1ed30a767f60","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"7e100691-44cb-4e75-bdcc-1ed30a767f60","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/7e100691-44cb-4e75-bdcc-1ed30a767f60' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7e100691-44cb-4e75-bdcc-1ed30a767f60","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"23f0f7966b9d668c3c3937b515e6190c","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/e6ee2798-0f7e-4dba-9b53-79cf01830a83"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/7e100691-44cb-4e75-bdcc-1ed30a767f60"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7e100691-44cb-4e75-bdcc-1ed30a767f60","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bd0ddac3-5017-4550-93a2-399ae0a49bb5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.7786064} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.531491,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7e100691-44cb-4e75-bdcc-1ed30a767f60","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/7e100691-44cb-4e75-bdcc-1ed30a767f60","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":"e243dbe0-2a6b-11ef-8ad5-3d996a2c698c"},"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/7e100691-44cb-4e75-bdcc-1ed30a767f60 200 8ms","method":"GET","requestID":"e243dbe0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":8,"status":200,"url":"/peerconnections/7e100691-44cb-4e75-bdcc-1ed30a767f60"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 26ms","method":"POST","requestID":"23f0f7966b9d668c3c3937b515e6190c","responseTime":26,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch","requestID":"23f0f7966b9d668c3c3937b515e6190c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a85e265d28fd2160bf806a6ad6232ff5","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.680292,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} 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":"a85e265d28fd2160bf806a6ad6232ff5"},"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/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"} gateway-1 | {"time_local":"14/Jun/2024:16:33:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05 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":"a85e265d28fd2160bf806a6ad6232ff5"} experiment-1 | {"level":"info","message":"GET /experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05 200 8ms","method":"GET","requestID":"a85e265d28fd2160bf806a6ad6232ff5","responseTime":8,"status":200,"url":"/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1d19909c7ac063570321fb77fc2e38c4","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.680075,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} 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":"1d19909c7ac063570321fb77fc2e38c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.90919,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:51Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7e100691-44cb-4e75-bdcc-1ed30a767f60","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/7e100691-44cb-4e75-bdcc-1ed30a767f60","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} 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":"e2539350-2a6b-11ef-8ad5-3d996a2c698c"},"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/7e100691-44cb-4e75-bdcc-1ed30a767f60' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/7e100691-44cb-4e75-bdcc-1ed30a767f60' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7e100691-44cb-4e75-bdcc-1ed30a767f60","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7e100691-44cb-4e75-bdcc-1ed30a767f60': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7e100691-44cb-4e75-bdcc-1ed30a767f60","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"bd4a4791-a2f7-4131-ac62-713c12cbe487","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.8916523} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bb6230a8-99ba-41ac-8f3e-7e75a6be792f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.8920045} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"272038a646d663fe4250967028690570","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/e6ee2798-0f7e-4dba-9b53-79cf01830a83"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/7e100691-44cb-4e75-bdcc-1ed30a767f60"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"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":"e2539350-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"46dee61f6dfc2b35fd2d811bd51cc6f0","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/e6ee2798-0f7e-4dba-9b53-79cf01830a83"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/1db14ef2-bc79-479d-964a-d76d12b73ba6"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/7e100691-44cb-4e75-bdcc-1ed30a767f60"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"7e100691-44cb-4e75-bdcc-1ed30a767f60","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/7e100691-44cb-4e75-bdcc-1ed30a767f60 204 35ms","method":"DELETE","requestID":"e2539350-2a6b-11ef-8ad5-3d996a2c698c","responseTime":35,"status":204,"url":"/peerconnections/7e100691-44cb-4e75-bdcc-1ed30a767f60"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F34bcd99b-32ca-413f-9ce6-6c45e9da9b05': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F34bcd99b-32ca-413f-9ce6-6c45e9da9b05","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"1a50089e-8815-4c9a-954a-38e88ea69b6e","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.9342754} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"20619cfb-89f0-4fa4-81f2-abe473512001","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382831.9345517} 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":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1d19909c7ac063570321fb77fc2e38c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"} gateway-1 | {"time_local":"14/Jun/2024:16:33:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.128","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1d19909c7ac063570321fb77fc2e38c4"} experiment-1 | {"level":"info","message":"DELETE /experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05 204 125ms","method":"DELETE","requestID":"1d19909c7ac063570321fb77fc2e38c4","responseTime":125,"status":204,"url":"/experiments/34bcd99b-32ca-413f-9ce6-6c45e9da9b05"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b083385b11d1fac92b64dbb9c0fbe951","responseTime":3,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.109","http_referrer":"","http_user_agent":"node-fetch","requestID":"272038a646d663fe4250967028690570"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 102ms","method":"POST","requestID":"272038a646d663fe4250967028690570","responseTime":102,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1756","request_time":"0.683","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"95fc97b59367d62c43a0ce800f50b3be"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 107ms","method":"POST","requestID":"46dee61f6dfc2b35fd2d811bd51cc6f0","responseTime":107,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33: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.112","http_referrer":"","http_user_agent":"node-fetch","requestID":"46dee61f6dfc2b35fd2d811bd51cc6f0"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:52Z"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.041156,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382831,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMX0.DzgViMPfaFrC-sBF89To2r73clLGTW_cq4GyH68QLT8"} gateway-1 | {"time_local":"14/Jun/2024:16:33:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1488","request_time":"0.687","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2b1dfcb8ff55ca721143123415b580b0"} 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":"b083385b11d1fac92b64dbb9c0fbe951"},"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/e6ee2798-0f7e-4dba-9b53-79cf01830a83' 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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d83a993-99ef-4b21-b9dd-4819be7ab7d4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b1eed7ab-c71b-482c-a764-47cd9d59e403","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382832.0277073} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b083385b11d1fac92b64dbb9c0fbe951"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bc2a88ad-8f6b-4e10-9b33-62d4b31962d0","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382832.0318584} 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":"b083385b11d1fac92b64dbb9c0fbe951"},"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/1db14ef2-bc79-479d-964a-d76d12b73ba6' closed"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d83a993-99ef-4b21-b9dd-4819be7ab7d4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"de901bb0-69a8-4ca9-aee1-aa63558bed08","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382832.040765} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"01d695be-e280-4e7d-9fe4-3e978e3b0ffc","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382832.0410316} 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":"b083385b11d1fac92b64dbb9c0fbe951"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d83a993-99ef-4b21-b9dd-4819be7ab7d4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d83a993-99ef-4b21-b9dd-4819be7ab7d4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:52.040741750Z"}]},"request_id":"1291b35e-9f82-4c83-91b2-4b4563a3ec2b","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382832.0450144} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b083385b11d1fac92b64dbb9c0fbe951"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"315","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b083385b11d1fac92b64dbb9c0fbe951"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"b083385b11d1fac92b64dbb9c0fbe951","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMn0.iqaKKBu7DJRY2zQtAYuPe2sEZ9bZXtpHDnpD7IA93P0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8ce62ef88e46a27ec179f0ba9006253b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:52Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.735216,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382832,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzMn0.iqaKKBu7DJRY2zQtAYuPe2sEZ9bZXtpHDnpD7IA93P0"} 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":"8ce62ef88e46a27ec179f0ba9006253b"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F011a8162-4e71-4575-b879-fc5d6c1b965b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"979fc601-c5dd-4d36-9eb8-9db1ce339be9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382832.0735338} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8ce62ef88e46a27ec179f0ba9006253b"},"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:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ba01a52a-a30a-476e-bf3f-8be78d42a955","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382832.0774434} 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":"8ce62ef88e46a27ec179f0ba9006253b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F011a8162-4e71-4575-b879-fc5d6c1b965b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"fb69a437-ca39-44f2-988f-41ba0a907451","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382832.087384} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c2ce9547-a6ec-4446-bc26-5cd9d3b60fc5","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382832.0874884} 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":"8ce62ef88e46a27ec179f0ba9006253b"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F011a8162-4e71-4575-b879-fc5d6c1b965b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F011a8162-4e71-4575-b879-fc5d6c1b965b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:52.087360875Z"}]},"request_id":"691f5c39-9d5b-478a-9571-fb7483ca909f","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382832.0917473} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8ce62ef88e46a27ec179f0ba9006253b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8ce62ef88e46a27ec179f0ba9006253b"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"8ce62ef88e46a27ec179f0ba9006253b","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"369f7b787c3c214d138dfbd3dace8fdb","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/011a8162-4e71-4575-b879-fc5d6c1b965b/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":"369f7b787c3c214d138dfbd3dace8fdb"} device-1 | {"level":"info","message":"OPTIONS /devices/011a8162-4e71-4575-b879-fc5d6c1b965b/websocket 200 1ms","method":"OPTIONS","requestID":"369f7b787c3c214d138dfbd3dace8fdb","responseTime":1,"status":200,"url":"/devices/011a8162-4e71-4575-b879-fc5d6c1b965b/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNH0.OxOHq7EFQMysuzPkIXmSwVxJaBrvdS9GtwTSJlDyQu4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9f9eeadf775b38c07f378c044b19ddcd","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.634091,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382834,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNH0.OxOHq7EFQMysuzPkIXmSwVxJaBrvdS9GtwTSJlDyQu4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9f9eeadf775b38c07f378c044b19ddcd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/011a8162-4e71-4575-b879-fc5d6c1b965b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.018","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9f9eeadf775b38c07f378c044b19ddcd"} device-1 | {"level":"info","message":"POST /devices/011a8162-4e71-4575-b879-fc5d6c1b965b/websocket 200 15ms","method":"POST","requestID":"9f9eeadf775b38c07f378c044b19ddcd","responseTime":15,"status":200,"url":"/devices/011a8162-4e71-4575-b879-fc5d6c1b965b/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNH0.OxOHq7EFQMysuzPkIXmSwVxJaBrvdS9GtwTSJlDyQu4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f843b87146319b39dec1510be929982f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.968774,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382834,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNH0.OxOHq7EFQMysuzPkIXmSwVxJaBrvdS9GtwTSJlDyQu4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f843b87146319b39dec1510be929982f"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F011a8162-4e71-4575-b879-fc5d6c1b965b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F011a8162-4e71-4575-b879-fc5d6c1b965b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:52.087360875Z"}]},"request_id":"63f3957f-05f7-429c-a3e1-3d09bf7d7913","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382834.0585608} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f843b87146319b39dec1510be929982f"},"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/011a8162-4e71-4575-b879-fc5d6c1b965b? 200 12ms","method":"GET","requestID":"f843b87146319b39dec1510be929982f","responseTime":12,"status":200,"url":"/devices/011a8162-4e71-4575-b879-fc5d6c1b965b?"} gateway-1 | {"time_local":"14/Jun/2024:16:33:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/011a8162-4e71-4575-b879-fc5d6c1b965b? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f843b87146319b39dec1510be929982f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNH0.OxOHq7EFQMysuzPkIXmSwVxJaBrvdS9GtwTSJlDyQu4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8a35d96cd0dedb31fac472bbb4172f7c","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:48592","level":"info","msg":"Received request.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.651679,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382834,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNH0.OxOHq7EFQMysuzPkIXmSwVxJaBrvdS9GtwTSJlDyQu4"} 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":"8a35d96cd0dedb31fac472bbb4172f7c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"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:48592","level":"info","msg":"Received request.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.614495,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d83a993-99ef-4b21-b9dd-4819be7ab7d4","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/8d83a993-99ef-4b21-b9dd-4819be7ab7d4","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382834,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNH0.OxOHq7EFQMysuzPkIXmSwVxJaBrvdS9GtwTSJlDyQu4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e3a58ec0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.933214,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382834,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNH0.OxOHq7EFQMysuzPkIXmSwVxJaBrvdS9GtwTSJlDyQu4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e3a5b5d0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d83a993-99ef-4b21-b9dd-4819be7ab7d4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8d83a993-99ef-4b21-b9dd-4819be7ab7d4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:52.040741750Z"}]},"request_id":"bbdea3a5-9767-43a7-90a8-3f4652bc2ca9","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382834.101704} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e3a58ec0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F011a8162-4e71-4575-b879-fc5d6c1b965b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F011a8162-4e71-4575-b879-fc5d6c1b965b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:52.087360875Z"}]},"request_id":"b4cabbac-0311-4116-8083-ee95c15574c3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382834.1027055} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e3a5b5d0-2a6b-11ef-8ad5-3d996a2c698c"},"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/8d83a993-99ef-4b21-b9dd-4819be7ab7d4? 200 15ms","method":"GET","requestID":"e3a58ec0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/8d83a993-99ef-4b21-b9dd-4819be7ab7d4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/011a8162-4e71-4575-b879-fc5d6c1b965b? 200 15ms","method":"GET","requestID":"e3a5b5d0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":15,"status":200,"url":"/devices/011a8162-4e71-4575-b879-fc5d6c1b965b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Attempting to instantiate devices for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.723419,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"action":"instantiate","level":"info","message":"opa_check","object":"device:http://localhost/devices/8d83a993-99ef-4b21-b9dd-4819be7ab7d4","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/8d83a993-99ef-4b21-b9dd-4819be7ab7d4","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382834,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNH0.OxOHq7EFQMysuzPkIXmSwVxJaBrvdS9GtwTSJlDyQu4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","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":"e3a9fb90-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"9da29fca-4acd-4fef-81c2-8fd2f8be18d2","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382834.1517358} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"38c1c31b-a303-4358-ad01-b21523b8b6ad","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382834.151991} 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":"e3a9fb90-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"registering changed-callback for device 'http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postDevicesByDeviceId succeeded"} authentication-1 | {"level":"info","message":"POST /token 201 14ms","method":"POST","requestID":"e3afc7f0-2a6b-11ef-bda3-1d7364b475c2","responseTime":14,"status":201,"url":"/token"} device-1 | {"level":"info","message":"POST /devices/8d83a993-99ef-4b21-b9dd-4819be7ab7d4?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 56ms","method":"POST","requestID":"e3a9fb90-2a6b-11ef-8ad5-3d996a2c698c","responseTime":56,"status":201,"url":"/devices/8d83a993-99ef-4b21-b9dd-4819be7ab7d4?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"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/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.693075,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382834,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNH0.OxOHq7EFQMysuzPkIXmSwVxJaBrvdS9GtwTSJlDyQu4"} 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":"e3b8a190-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Received request.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"client_addr":"127.0.0.1:48600","level":"info","msg":"Sent response.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.627283,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382834,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNH0.OxOHq7EFQMysuzPkIXmSwVxJaBrvdS9GtwTSJlDyQu4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e3b8c8a0-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:54.151696092Z"}]},"request_id":"49225498-6710-493d-8621-688176408120","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382834.2257557} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e3b8a190-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F011a8162-4e71-4575-b879-fc5d6c1b965b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F011a8162-4e71-4575-b879-fc5d6c1b965b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:52.087360875Z"}]},"request_id":"8361eb1b-87c0-44a7-bd8d-48f0a09418ff","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382834.2264826} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e3b8c8a0-2a6b-11ef-8ad5-3d996a2c698c"},"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/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6? 200 14ms","method":"GET","requestID":"e3b8a190-2a6b-11ef-8ad5-3d996a2c698c","responseTime":14,"status":200,"url":"/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/011a8162-4e71-4575-b879-fc5d6c1b965b? 200 13ms","method":"GET","requestID":"e3b8c8a0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":13,"status":200,"url":"/devices/011a8162-4e71-4575-b879-fc5d6c1b965b?"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8596180f-b5ae-4aaa-adb0-1721bbe4ea96#owner@http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8596180f-b5ae-4aaa-adb0-1721bbe4ea96","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"9bf89be0-496a-4366-aec5-366bdd9a0970","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382834.234085} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7919d9dd-3921-425e-bdca-29b089e81f2a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382834.234286} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8a35d96cd0dedb31fac472bbb4172f7c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96","user":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"14/Jun/2024:16:33:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1107","request_time":"0.178","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8a35d96cd0dedb31fac472bbb4172f7c"} experiment-1 | {"level":"info","message":"POST /experiments? 201 174ms","method":"POST","requestID":"8a35d96cd0dedb31fac472bbb4172f7c","responseTime":174,"status":201,"url":"/experiments?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3afba03f6560e7da0912fbf2d446b0c1","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Jun/2024:16:33:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6/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":"3afba03f6560e7da0912fbf2d446b0c1"} device-1 | {"level":"info","message":"OPTIONS /devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6/websocket 200 1ms","method":"OPTIONS","requestID":"3afba03f6560e7da0912fbf2d446b0c1","responseTime":1,"status":200,"url":"/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6IkNGNEJDeURDTGYyZldJOEhuYmZrUTlpNm5Camo4NUphbmVWWnY0YWlSM2dlZk5CcmF1c2J5cTB2bGJPMldOR2pwdU5JTHdpYWEzd3QzRURUT2syTWp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNn0.dh06Jjx3YizUTE59pW5G6ViKp5n8tL8lXqHCd7sIVwY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"93763e7a17fe30de2208d49167563c11","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650613,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:56Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","object_type":"device","payload":{"admin":true,"edgeToken":"CF4BCyDCLf2fWI8HnbfkQ9i6nBjj85JaneVZv4aiR3gefNBrausbyq0vlbO2WNGjpuNILwiaa3wt3EDTOk2Mjw","iat":1718382836,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6IkNGNEJDeURDTGYyZldJOEhuYmZrUTlpNm5Camo4NUphbmVWWnY0YWlSM2dlZk5CcmF1c2J5cTB2bGJPMldOR2pwdU5JTHdpYWEzd3QzRURUT2syTWp3IiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNn0.dh06Jjx3YizUTE59pW5G6ViKp5n8tL8lXqHCd7sIVwY"} 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":"93763e7a17fe30de2208d49167563c11"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.020","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"93763e7a17fe30de2208d49167563c11"} device-1 | {"level":"info","message":"POST /devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6/websocket 200 16ms","method":"POST","requestID":"93763e7a17fe30de2208d49167563c11","responseTime":16,"status":200,"url":"/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6/websocket"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"device 'http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"614a8cc3c41ad10f5f42c85b7b3c6244","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/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNn0.3dxyRk6YqeiylKRI88kA46XybetvmJGA28g3GUUDOK8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7b4638a10fb7db9655d7451077264cfb","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.776008,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382836,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNn0.3dxyRk6YqeiylKRI88kA46XybetvmJGA28g3GUUDOK8"} 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":"7b4638a10fb7db9655d7451077264cfb"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:54.151696092Z"}]},"request_id":"da1a3c25-b0bc-4c38-8037-7394019a1dc3","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382836.2101536} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7b4638a10fb7db9655d7451077264cfb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6? 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":"7b4638a10fb7db9655d7451077264cfb"} device-1 | {"level":"info","message":"GET /devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6? 200 13ms","method":"GET","requestID":"7b4638a10fb7db9655d7451077264cfb","responseTime":13,"status":200,"url":"/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6?"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 16ms","method":"POST","requestID":"614a8cc3c41ad10f5f42c85b7b3c6244","responseTime":16,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch","requestID":"614a8cc3c41ad10f5f42c85b7b3c6244"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNn0.3dxyRk6YqeiylKRI88kA46XybetvmJGA28g3GUUDOK8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"86bd85482b466ed54581355e806cc468","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:56Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.63438,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382836,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNn0.3dxyRk6YqeiylKRI88kA46XybetvmJGA28g3GUUDOK8"} 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":"86bd85482b466ed54581355e806cc468"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F011a8162-4e71-4575-b879-fc5d6c1b965b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F011a8162-4e71-4575-b879-fc5d6c1b965b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:52.087360875Z"}]},"request_id":"e5a4325e-2138-425e-bde0-6080ec229a60","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382836.2250547} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"86bd85482b466ed54581355e806cc468"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"14/Jun/2024:16:33:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/011a8162-4e71-4575-b879-fc5d6c1b965b? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"86bd85482b466ed54581355e806cc468"} device-1 | {"level":"info","message":"GET /devices/011a8162-4e71-4575-b879-fc5d6c1b965b? 200 10ms","method":"GET","requestID":"86bd85482b466ed54581355e806cc468","responseTime":10,"status":200,"url":"/devices/011a8162-4e71-4575-b879-fc5d6c1b965b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.841472,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382834,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNH0.OxOHq7EFQMysuzPkIXmSwVxJaBrvdS9GtwTSJlDyQu4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6b65130-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:57972","level":"info","msg":"Received request.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"client_addr":"127.0.0.1:57972","level":"info","msg":"Sent response.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.491818,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382834,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNH0.OxOHq7EFQMysuzPkIXmSwVxJaBrvdS9GtwTSJlDyQu4"} 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":"e6b69f50-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:54.151696092Z"}]},"request_id":"e4c8e5ae-25ce-4184-ae17-de253722aa73","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382839.2502065} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6b65130-2a6b-11ef-8ad5-3d996a2c698c"},"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:57626","raw_request":{"continuation_token":"","page_size":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F011a8162-4e71-4575-b879-fc5d6c1b965b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F011a8162-4e71-4575-b879-fc5d6c1b965b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"timestamp":"2024-06-14T16:33:52.087360875Z"}]},"request_id":"26bccf5d-a1b3-4d29-b7c9-e26f1aebdd63","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382839.2513025} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6b69f50-2a6b-11ef-8ad5-3d996a2c698c"},"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/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6? 200 22ms","method":"GET","requestID":"e6b65130-2a6b-11ef-8ad5-3d996a2c698c","responseTime":22,"status":200,"url":"/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/011a8162-4e71-4575-b879-fc5d6c1b965b? 200 21ms","method":"GET","requestID":"e6b69f50-2a6b-11ef-8ad5-3d996a2c698c","responseTime":21,"status":200,"url":"/devices/011a8162-4e71-4575-b879-fc5d6c1b965b?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.692604,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6ba21c0-2a6b-11ef-8ad5-3d996a2c698c"},"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/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6/signaling 200 7ms","method":"POST","requestID":"e6ba21c0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":7,"status":200,"url":"/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":308,"resp_duration":0.688513,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"action":"signal","level":"info","message":"opa_check","object":"device:http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b","object_type":"device","rebac_allow":false,"scope_allow":false,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"132","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e6bb8150-2a6b-11ef-8ad5-3d996a2c698c"},"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/011a8162-4e71-4575-b879-fc5d6c1b965b/signaling 200 7ms","method":"POST","requestID":"e6bb8150-2a6b-11ef-8ad5-3d996a2c698c","responseTime":7,"status":200,"url":"/devices/011a8162-4e71-4575-b879-fc5d6c1b965b/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"185d6c51-5829-4865-85ce-caccfe58f35e"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"4b4b5fdd-bbc6-48fd-be96-8de18882995b"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"420c50da-6634-4954-86ba-bbd63b09005c"}]},"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/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.25598,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382834,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzNH0.OxOHq7EFQMysuzPkIXmSwVxJaBrvdS9GtwTSJlDyQu4"} 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":"e6bce0e0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","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%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]}},"raw_response":{},"request_id":"3a551f6a-1d6b-4804-8c9d-8834c34105f1","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382839.293627} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b0aad936-6899-4736-9d8b-6049b6e1e5cf","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382839.2941833} 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":"e6bce0e0-2a6b-11ef-8ad5-3d996a2c698c"},"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/2cdf1836-c353-4da0-8be6-46fbe29e1753'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/2cdf1836-c353-4da0-8be6-46fbe29e1753'"} 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":"e6bce0e0-2a6b-11ef-8ad5-3d996a2c698c","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/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/2cdf1836-c353-4da0-8be6-46fbe29e1753' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2cdf1836-c353-4da0-8be6-46fbe29e1753","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8f10c87175cf9ae113ae50c0ec1fc41d","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/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/2cdf1836-c353-4da0-8be6-46fbe29e1753"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 3ms","method":"POST","requestID":"8f10c87175cf9ae113ae50c0ec1fc41d","responseTime":3,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"8f10c87175cf9ae113ae50c0ec1fc41d"} device-1 | {"data":{"peerconnection":"2cdf1836-c353-4da0-8be6-46fbe29e1753","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"2cdf1836-c353-4da0-8be6-46fbe29e1753","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/2cdf1836-c353-4da0-8be6-46fbe29e1753' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2cdf1836-c353-4da0-8be6-46fbe29e1753","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9f7c20928a1ba8624e275d6e1a485ae1","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/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/2cdf1836-c353-4da0-8be6-46fbe29e1753"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","contextual_tuples":null,"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2cdf1836-c353-4da0-8be6-46fbe29e1753","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"69d66968-9475-4047-aa97-ee6324e9dc81","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382839.5157797} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.99155,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2cdf1836-c353-4da0-8be6-46fbe29e1753","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/2cdf1836-c353-4da0-8be6-46fbe29e1753","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":"e6e06e70-2a6b-11ef-8ad5-3d996a2c698c"},"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/2cdf1836-c353-4da0-8be6-46fbe29e1753 200 9ms","method":"GET","requestID":"e6e06e70-2a6b-11ef-8ad5-3d996a2c698c","responseTime":9,"status":200,"url":"/peerconnections/2cdf1836-c353-4da0-8be6-46fbe29e1753"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 30ms","method":"POST","requestID":"9f7c20928a1ba8624e275d6e1a485ae1","responseTime":30,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"9f7c20928a1ba8624e275d6e1a485ae1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzOX0.XEHivGwTz5TaSqde7gjxjkYUs92607m-VL08GFat-wY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1e2b65b2c81a4f4933b521820711ac08","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.664181,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382839,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzOX0.XEHivGwTz5TaSqde7gjxjkYUs92607m-VL08GFat-wY"} 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":"1e2b65b2c81a4f4933b521820711ac08"},"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/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"} gateway-1 | {"time_local":"14/Jun/2024:16:33:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96 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":"1e2b65b2c81a4f4933b521820711ac08"} experiment-1 | {"level":"info","message":"GET /experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96 200 9ms","method":"GET","requestID":"1e2b65b2c81a4f4933b521820711ac08","responseTime":9,"status":200,"url":"/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzOX0.XEHivGwTz5TaSqde7gjxjkYUs92607m-VL08GFat-wY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e2832787f584aa4e6af8ec9fcef506e4","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.370725,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"experiment:http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96","object_type":"experiment","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382839,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzOX0.XEHivGwTz5TaSqde7gjxjkYUs92607m-VL08GFat-wY"} 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":"e2832787f584aa4e6af8ec9fcef506e4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.703518,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2cdf1836-c353-4da0-8be6-46fbe29e1753","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"peerconnection:http://localhost/peerconnections/2cdf1836-c353-4da0-8be6-46fbe29e1753","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382839,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzOX0.XEHivGwTz5TaSqde7gjxjkYUs92607m-VL08GFat-wY"} 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":"e6f1d390-2a6b-11ef-8ad5-3d996a2c698c"},"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/2cdf1836-c353-4da0-8be6-46fbe29e1753' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/2cdf1836-c353-4da0-8be6-46fbe29e1753' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2cdf1836-c353-4da0-8be6-46fbe29e1753","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2cdf1836-c353-4da0-8be6-46fbe29e1753': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2cdf1836-c353-4da0-8be6-46fbe29e1753","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"60e7d468-4f3b-4249-a829-9628d236693a","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382839.6393168} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"24715b93-35c4-463c-9b55-e1f6c3e23afd","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382839.6396332} 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":"e6f1d390-2a6b-11ef-8ad5-3d996a2c698c"},"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:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0b802c80201c19ccbcf75bd051138b42","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2cdf1836-c353-4da0-8be6-46fbe29e1753"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a03d58264744550de11c84f0400f94a2","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"DELETE /peerconnections/2cdf1836-c353-4da0-8be6-46fbe29e1753 204 19ms","method":"DELETE","requestID":"e6f1d390-2a6b-11ef-8ad5-3d996a2c698c","responseTime":19,"status":204,"url":"/peerconnections/2cdf1836-c353-4da0-8be6-46fbe29e1753"} 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/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2cdf1836-c353-4da0-8be6-46fbe29e1753"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deleteDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Received request.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"client_addr":"127.0.0.1:48592","level":"info","msg":"Sent response.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661356,"resp_status":200,"subsystem":"opa","time":"2024-06-14T16:33:59Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"device:http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","openfga":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","store":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e","object":"device:http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","object_type":"device","payload":{"admin":true,"edgeToken":"fJ_SbymcyTsDerZiraBKQwY-LSD4U54c5pY_6ADOVuY-rQb0kiVd1GRq5nv8UmwXn4pEA5BH99sQ7AfxLDbD4Q","iat":1718382839,"sub":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e","subject_alt":"http://localhost/users/b15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2IxNWVkOTMyLWMyZDItNDRlOS1iYmYyLWFhN2M5NzBlZWQ4ZSIsImVkZ2VUb2tlbiI6ImZKX1NieW1jeVRzRGVyWmlyYUJLUXdZLUxTRDRVNTRjNXBZXzZBRE9WdVktclFiMGtpVmQxR1JxNW52OFVtd1huNHBFQTVCSDk5c1E3QWZ4TERiRDRRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxODM4MjgzOX0.XEHivGwTz5TaSqde7gjxjkYUs92607m-VL08GFat-wY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","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":"e6f507e0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b'"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'device:http%3A%2F%2Flocalhost%2Fdevices%2F12d75e78-7e0e-4eb7-a11e-2d24d709e1b6': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F12d75e78-7e0e-4eb7-a11e-2d24d709e1b6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"438522a8-fc17-41a2-8c3e-ad9abf68b82d","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382839.656857} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c46d4138-a823-4ea1-a070-41d1aad68136","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382839.657001} 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":"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":"e6f507e0-2a6b-11ef-8ad5-3d996a2c698c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"deleteDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"DELETE /devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6 204 20ms","method":"DELETE","requestID":"e6f507e0-2a6b-11ef-8ad5-3d996a2c698c","responseTime":20,"status":204,"url":"/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"},"level":"info","message":"Successfully finished experiment"} authorization-1 | {"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8596180f-b5ae-4aaa-adb0-1721bbe4ea96': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"authorization_model_id":"01J0BSG6EC23009PP0FY0ARJG7","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8596180f-b5ae-4aaa-adb0-1721bbe4ea96","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Fb15ed932-c2d2-44e9-bbf2-aa7c970eed8e"}]},"store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","writes":null},"raw_response":{},"request_id":"07c336f2-f183-4ce9-9808-d9ef9f22aa48","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382839.6866226} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:57626","raw_request":{"id":"01J0BSG6EC23009PP0FY0ARJG7","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX"},"raw_response":{"authorization_model":{"id":"01J0BSG6EC23009PP0FY0ARJG7","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5b40a797-8994-47f6-9af4-864751c768de","store_id":"01J0BSG6C9TBNJCTDTSJ60P8VX","subsystem":"openfga","timestamp":1718382839.6868622} 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":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e2832787f584aa4e6af8ec9fcef506e4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"} gateway-1 | {"time_local":"14/Jun/2024:16:33:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.125","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e2832787f584aa4e6af8ec9fcef506e4"} experiment-1 | {"level":"info","message":"DELETE /experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96 204 122ms","method":"DELETE","requestID":"e2832787f584aa4e6af8ec9fcef506e4","responseTime":122,"status":204,"url":"/experiments/8596180f-b5ae-4aaa-adb0-1721bbe4ea96"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 94ms","method":"POST","requestID":"0b802c80201c19ccbcf75bd051138b42","responseTime":94,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.096","http_referrer":"","http_user_agent":"node-fetch","requestID":"0b802c80201c19ccbcf75bd051138b42"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 93ms","method":"POST","requestID":"a03d58264744550de11c84f0400f94a2","responseTime":93,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.096","http_referrer":"","http_user_agent":"node-fetch","requestID":"a03d58264744550de11c84f0400f94a2"} gateway-1 | {"time_local":"14/Jun/2024:16:33:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1758","request_time":"3.558","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d0ff56e3c172a3936635eb977585fab3"} gateway-1 | {"time_local":"14/Jun/2024:16:33:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1486","request_time":"5.708","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f911bd1668ce79f996988bda5c0df17e"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6' closed"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:144:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:114:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7ffdd315f6c8cf63008e10512c766b60","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/12d75e78-7e0e-4eb7-a11e-2d24d709e1b6"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 410 2ms","method":"POST","requestID":"7ffdd315f6c8cf63008e10512c766b60","responseTime":2,"status":410,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Jun/2024:16:33:59 +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":"7ffdd315f6c8cf63008e10512c766b60"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/011a8162-4e71-4575-b879-fc5d6c1b965b' closed"} authorization-1 | {"level":"info","msg":"Shutting down...","subsystem":"opa","time":"2024-06-14T16:34:04Z"} authorization-1 | {"level":"info","msg":"Server shutdown.","subsystem":"opa","time":"2024-06-14T16:34:04Z"} authorization-1 exited with code 0 experiment-1 exited with code 0 device-1 exited with code 0 authentication-1 exited with code 0 gateway-1 exited with code 0