Creating integration-test_experiment_1 ... Creating integration-test_federation_1 ... Creating integration-test_device_1 ... Creating integration-test_authentication_1 ... Creating integration-test_gateway_1 ... Creating integration-test_authorization_1 ... Creating integration-test_authorization_1 ... done Creating integration-test_gateway_1 ... done Creating integration-test_authentication_1 ... done Creating integration-test_experiment_1 ... done Creating integration-test_device_1 ... done Creating integration-test_federation_1 ... done Attaching to integration-test_authorization_1, integration-test_gateway_1, integration-test_authentication_1, integration-test_experiment_1, integration-test_device_1, integration-test_federation_1 authentication_1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} authorization_1 | {"addrs":["localhost:3011"],"diagnostic-addrs":[],"level":"info","msg":"Initializing server.","subsystem":"opa","time":"2023-12-04T15:56:05Z"} authentication_1 | {"level":"info","message":"Authentication Service started successfully"} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"๐Ÿงช experimental features enabled: []","subsystem":"openfga","timestamp":1701705365.180691} experiment_1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} experiment_1 | {"level":"info","message":"Device Service started successfully"} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"using 'memory' storage engine","subsystem":"openfga","timestamp":1701705365.1808424} device_1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"warn","message":"authentication is disabled","subsystem":"openfga","timestamp":1701705365.1808648} 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/ device_1 | {"level":"info","message":"Device Service started successfully"} 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 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":1701705365.1808937} gateway_1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf 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":1701705365.1809185} gateway_1 | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh 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":1701705365.181102,"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":1701705365.1816454} gateway_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-create_config.sh authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"HTTP server listening on 'localhost:3013'...","subsystem":"openfga","timestamp":1701705365.182755} 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:35894","raw_request":{"name":"crosslab"},"raw_response":{"created_at":"2023-12-04T15:56:05.226157110Z","id":"01HGTRPDQAQB7YS9HP4QN497YP","name":"crosslab","updated_at":"2023-12-04T15:56:05.226157110Z"},"request_id":"b4fb42d7-2b51-4fc6-85bd-0d92b90a8453","subsystem":"openfga","timestamp":1701705365.2262585} gateway_1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/device_service.conf to /etc/nginx/device_service.conf 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:35894","raw_request":{"schema_version":"1.1","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_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":"01HGTRPDRAREZVVDD5Z5RZ7EA5"},"request_id":"b454b69f-e65f-4455-9dd5-59fb02b8edbf","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705365.2586136} authorization_1 | {"level":"info","message":"Authorization Service started successfully"} gateway_1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/authorization_service.conf to /etc/nginx/authorization_service.conf authorization_1 | {"client_addr":"127.0.0.1:37472","level":"info","msg":"Received request.","req_id":1,"req_method":"PUT","req_path":"/v1/data/jwt_secret","subsystem":"opa","time":"2023-12-04T15:56:05Z"} gateway_1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/nginx.conf to /etc/nginx/nginx.conf authorization_1 | {"client_addr":"127.0.0.1:37472","level":"info","msg":"Sent response.","req_id":1,"req_method":"PUT","req_path":"/v1/data/jwt_secret","resp_bytes":0,"resp_duration":0.592627,"resp_status":204,"subsystem":"opa","time":"2023-12-04T15:56:05Z"} authorization_1 | {"current_version":"0.54.0","download_opa":"https://openpolicyagent.org/downloads/v0.59.0/opa_linux_amd64","latest_version":"0.59.0","level":"info","msg":"OPA is out of date.","release_notes":"https://github.com/open-policy-agent/opa/releases/tag/v0.59.0","subsystem":"opa","time":"2023-12-04T15:56:05Z"} 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/api_backends.conf to /etc/nginx/api_backends.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_gateway.conf to /etc/nginx/api_gateway.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/experiment_service.conf to /etc/nginx/experiment_service.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.10.0 integration-test_federation_1 exited with code 1 gateway_1 | {"time_local":"04/Dec/2023:16:04:07 +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.040","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"2d2f961f4149ea2f17fc67f72046aa08"} authentication_1 | {"level":"info","message":"HEAD /auth/status 200 13ms","method":"HEAD","requestID":"2d2f961f4149ea2f17fc67f72046aa08","responseTime":13,"status":200,"url":"/auth/status"} gateway_1 | {"time_local":"04/Dec/2023:16:04:07 +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.016","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"b0fbd9b07a2fc88815e27879bbfd50e1"} device_1 | {"level":"info","message":"HEAD /device/status 200 9ms","method":"HEAD","requestID":"c11b2fd0-92be-11ee-b645-7f04f10d7150","responseTime":9,"status":200,"url":"/device/status"} gateway_1 | {"time_local":"04/Dec/2023:16:04:07 +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.060","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"37a584651cf601f22377a12b6cbf3a5a"} authorization_1 | {"level":"info","message":"HEAD /authorization/status 200 43ms","meta":{"req":{"headers":{"accept":"*/*","connection":"close","host":"authorization_service","user-agent":"curl/7.81.0","x-request-id":"37a584651cf601f22377a12b6cbf3a5a"},"httpVersion":"1.0","method":"HEAD","originalUrl":"/authorization/status","query":{},"url":"/authorization/status"},"res":{"statusCode":200},"responseTime":43}} authentication_1 | {"level":"info","message":"POST /login 201 91ms","method":"POST","requestID":"74bc7f3b23403c1217d532d08bb4ab58","responseTime":91,"status":201,"url":"/login"} gateway_1 | {"time_local":"04/Dec/2023:16:04:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /login HTTP/1.1","status": "201","body_bytes_sent":"88","request_time":"0.115","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"74bc7f3b23403c1217d532d08bb4ab58"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODUwfQ.K4XRoSTnekju1s8vpTkF0Ec9qYxcMS64rJmMaXK3Cw4","level":"info","message":"auth send jwt","requestID":"343816a7f4510894aa0546d413d9aea0"} authentication_1 | {"level":"info","message":"GET /auth 200 130ms","method":"GET","requestID":"343816a7f4510894aa0546d413d9aea0","responseTime":130,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:57272","level":"info","msg":"Received request.","req_id":2,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:11Z"} authorization_1 | {"client_addr":"127.0.0.1:57272","level":"info","msg":"Sent response.","req_id":2,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.338691,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:11Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705850,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODUwfQ.K4XRoSTnekju1s8vpTkF0Ec9qYxcMS64rJmMaXK3Cw4"} authorization_1 | {"level":"info","message":"POST /authorize 200 25ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":25}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"3391fbf5-ac53-49fb-ab97-072895458a57","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705851.1929464} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"88f2f447-7b5d-48ca-9f8d-8d4fe5047c71","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705851.1932614} authorization_1 | {"level":"info","message":"POST /relations/update 200 139ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":139}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 375ms","method":"POST","requestID":"343816a7f4510894aa0546d413d9aea0","responseTime":375,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.536","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"343816a7f4510894aa0546d413d9aea0"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODUxfQ.BSQnL4BJyFur8AF8lRJcNzl0gI77L7Ql-4bcCFCRYn0","level":"info","message":"auth send jwt","requestID":"2c390a501f3de4dd901cc56662775c11"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2c390a501f3de4dd901cc56662775c11","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:57272","level":"info","msg":"Received request.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:11Z"} authorization_1 | {"client_addr":"127.0.0.1:57272","level":"info","msg":"Sent response.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.974892,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:11Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705851,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODUxfQ.BSQnL4BJyFur8AF8lRJcNzl0gI77L7Ql-4bcCFCRYn0"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"c9536bc1-b50a-4b09-a9f0-1ae80585df05","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705851.3917613} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d47e9523-de76-47ac-b516-4780ec9ae8fd","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705851.3921218} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 146ms","method":"POST","requestID":"2c390a501f3de4dd901cc56662775c11","responseTime":146,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.192","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2c390a501f3de4dd901cc56662775c11"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"f27a23a2709563333e081bc37ddbb7d4","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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 3ms","method":"GET","requestID":"f27a23a2709563333e081bc37ddbb7d4","responseTime":3,"status":200,"url":"/auth"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"8e3bb8c0566ad7f667a9879a5e7db173","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"8e3bb8c0566ad7f667a9879a5e7db173","responseTime":2,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.009","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f27a23a2709563333e081bc37ddbb7d4"} device_1 | {"level":"info","message":"OPTIONS /devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9/websocket 200 3ms","method":"OPTIONS","requestID":"f27a23a2709563333e081bc37ddbb7d4","responseTime":3,"status":200,"url":"/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9/websocket"} gateway_1 | {"time_local":"04/Dec/2023:16:04:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.012","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8e3bb8c0566ad7f667a9879a5e7db173"} device_1 | {"level":"info","message":"OPTIONS /devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3/websocket 200 1ms","method":"OPTIONS","requestID":"8e3bb8c0566ad7f667a9879a5e7db173","responseTime":1,"status":200,"url":"/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A","level":"info","message":"auth send jwt","requestID":"d75b45cf568108987c2557443106936b"} authentication_1 | {"level":"info","message":"GET /auth 200 9ms","method":"GET","requestID":"d75b45cf568108987c2557443106936b","responseTime":9,"status":200,"url":"/auth"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A","level":"info","message":"auth send jwt","requestID":"830027875a156a9e54726c59529ad286"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication_1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"830027875a156a9e54726c59529ad286","responseTime":8,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:22Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.351906,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:22Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3","object_type":"device","payload":{"admin":true,"iat":1701705862,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A"} authorization_1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization_1 | {"client_addr":"127.0.0.1:54588","level":"info","msg":"Received request.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:22Z"} authorization_1 | {"client_addr":"127.0.0.1:54588","level":"info","msg":"Sent response.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.962651,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:22Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9","object_type":"device","payload":{"admin":true,"iat":1701705862,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A"} authorization_1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","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":"830027875a156a9e54726c59529ad286"} device_1 | {"level":"info","message":"POST /devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9/websocket 200 35ms","method":"POST","requestID":"830027875a156a9e54726c59529ad286","responseTime":35,"status":200,"url":"/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9/websocket"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.322","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d75b45cf568108987c2557443106936b"} device_1 | {"level":"info","message":"POST /devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3/websocket 200 310ms","method":"POST","requestID":"d75b45cf568108987c2557443106936b","responseTime":310,"status":200,"url":"/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9' connected"} device_1 | {"level":"info","message":"device 'http://localhost/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A","level":"info","message":"auth send jwt","requestID":"677c10d1dbb8ab2a92d430b38ed03930"} authentication_1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"677c10d1dbb8ab2a92d430b38ed03930","responseTime":6,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:22Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.241105,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:22Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9","object_type":"device","payload":{"admin":true,"iat":1701705862,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"677c10d1dbb8ab2a92d430b38ed03930"} device_1 | {"level":"info","message":"GET /devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9? 200 23ms","method":"GET","requestID":"677c10d1dbb8ab2a92d430b38ed03930","responseTime":23,"status":200,"url":"/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A","level":"info","message":"auth send jwt","requestID":"8fba94081b801ce83b951f8ef8784d15"} authentication_1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"8fba94081b801ce83b951f8ef8784d15","responseTime":6,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:22Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.082205,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:22Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3","object_type":"device","payload":{"admin":true,"iat":1701705862,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8fba94081b801ce83b951f8ef8784d15"} device_1 | {"level":"info","message":"GET /devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3? 200 17ms","method":"GET","requestID":"8fba94081b801ce83b951f8ef8784d15","responseTime":17,"status":200,"url":"/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A","level":"info","message":"auth send jwt","requestID":"4e418abce444f80f98940f2188bccde3"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4e418abce444f80f98940f2188bccde3","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:54572","level":"info","msg":"Received request.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:22Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":0.786372,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:22Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705862,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"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:54572","level":"info","msg":"Received request.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:23Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.612677,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:23Z"} authorization_1 | {"client_addr":"127.0.0.1:54588","level":"info","msg":"Received request.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:23Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9","object_type":"device","payload":{"admin":true,"iat":1701705862,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A"} authorization_1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization_1 | {"client_addr":"127.0.0.1:54588","level":"info","msg":"Sent response.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.243995,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:23Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3","object_type":"device","payload":{"admin":true,"iat":1701705862,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A"} authorization_1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9? 200 25ms","method":"GET","requestID":"ca528030-92be-11ee-b645-7f04f10d7150","responseTime":25,"status":200,"url":"/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3? 200 23ms","method":"GET","requestID":"ca52f560-92be-11ee-b645-7f04f10d7150","responseTime":23,"status":200,"url":"/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"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/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:24Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.872444,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:24Z"} authorization_1 | {"client_addr":"127.0.0.1:54588","level":"info","msg":"Received request.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:24Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9","object_type":"device","payload":{"admin":true,"iat":1701705862,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A"} authorization_1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization_1 | {"client_addr":"127.0.0.1:54588","level":"info","msg":"Sent response.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.609046,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:24Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3","object_type":"device","payload":{"admin":true,"iat":1701705862,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A"} authorization_1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9? 200 23ms","method":"GET","requestID":"cb2a69a0-92be-11ee-b645-7f04f10d7150","responseTime":23,"status":200,"url":"/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3? 200 23ms","method":"GET","requestID":"cb2aded0-92be-11ee-b645-7f04f10d7150","responseTime":23,"status":200,"url":"/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Building connection plan"} experiment_1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"e64d551c-64ec-4345-893d-f7d8c7103165"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"ef4c65b3-3696-40b6-8e4e-e93e76cab713"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"b51e1296-ebdc-4ff1-8e8b-4d89689473cc"}]},"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/497c39d1-dfca-4d34-ae0c-34835ab5b0f3"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:24Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.877116,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:24Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705862,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODYyfQ.NA4MBaa7TglyYq_BXm0dO5Mc518jlOt5ZXZ-0j32O0A"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc52a4a76-78f5-46f6-9b45-4b6b41797608#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc52a4a76-78f5-46f6-9b45-4b6b41797608","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"10f9ae99-4bda-48eb-960b-089e4e306938","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705865.2238586} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a52313c6-04da-4453-95d4-b4747f07e0b4","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705865.224481} authorization_1 | {"level":"info","message":"POST /relations/update 200 703ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":703}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 2536ms","method":"POST","requestID":"4e418abce444f80f98940f2188bccde3","responseTime":2536,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:04:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"2.567","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4e418abce444f80f98940f2188bccde3"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODY1fQ.DxDPnRmrOnbJjRfoZk3HUOBp0orjKV3nM1wNl87ydWY","level":"info","message":"auth send jwt","requestID":"2357cae8a7d1daf1a9509dd72bf6c9a0"} authentication_1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"2357cae8a7d1daf1a9509dd72bf6c9a0","responseTime":7,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:25Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.188507,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:25Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9","object_type":"device","payload":{"admin":true,"iat":1701705865,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODY1fQ.DxDPnRmrOnbJjRfoZk3HUOBp0orjKV3nM1wNl87ydWY"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2357cae8a7d1daf1a9509dd72bf6c9a0"} device_1 | {"level":"info","message":"GET /devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9? 200 17ms","method":"GET","requestID":"2357cae8a7d1daf1a9509dd72bf6c9a0","responseTime":17,"status":200,"url":"/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODY1fQ.DxDPnRmrOnbJjRfoZk3HUOBp0orjKV3nM1wNl87ydWY","level":"info","message":"auth send jwt","requestID":"30e9596fdd841fdb27769a1bc46894f3"} authentication_1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"30e9596fdd841fdb27769a1bc46894f3","responseTime":7,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:25Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.989769,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:25Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3","object_type":"device","payload":{"admin":true,"iat":1701705865,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODY1fQ.DxDPnRmrOnbJjRfoZk3HUOBp0orjKV3nM1wNl87ydWY"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"30e9596fdd841fdb27769a1bc46894f3"} device_1 | {"level":"info","message":"GET /devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3? 200 17ms","method":"GET","requestID":"30e9596fdd841fdb27769a1bc46894f3","responseTime":17,"status":200,"url":"/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3?"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"fe5cd16c-2781-45b9-9695-9ab8f57590c2","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705865.8206832} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0a98df4c-c26e-4b9a-957c-f8cfff4d71d4","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705865.8210413} authorization_1 | {"level":"info","message":"POST /relations/update 200 1264ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":1264}} 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/f4e23b44-2d24-4c90-a9a8-8ec007deccc8'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/f4e23b44-2d24-4c90-a9a8-8ec007deccc8'"} 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 1410ms","method":"POST","requestID":"cb2fc0d0-92be-11ee-b645-7f04f10d7150","responseTime":1410,"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/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Successfully created peerconnections for experiment"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/f4e23b44-2d24-4c90-a9a8-8ec007deccc8' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"f4e23b44-2d24-4c90-a9a8-8ec007deccc8","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"082a58675b316ce75ec074534fdba5dd","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"082a58675b316ce75ec074534fdba5dd","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/497c39d1-dfca-4d34-ae0c-34835ab5b0f3"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/f4e23b44-2d24-4c90-a9a8-8ec007deccc8"}}},"level":"info","message":"received a callback"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 12ms","method":"POST","requestID":"082a58675b316ce75ec074534fdba5dd","responseTime":12,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:04:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch","requestID":"082a58675b316ce75ec074534fdba5dd"} device_1 | {"data":{"peerconnection":"f4e23b44-2d24-4c90-a9a8-8ec007deccc8","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODY3fQ.EaUtEkjGEjQLWhBYB71L16Xz4yfD2GbVP633dqDrU2E","level":"info","message":"auth send jwt","requestID":"07865a20fa94fef3763bb71e05c8690f"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"07865a20fa94fef3763bb71e05c8690f","responseTime":5,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:27Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":2.036859,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:27Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608","object_type":"experiment","payload":{"admin":true,"iat":1701705867,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODY3fQ.EaUtEkjGEjQLWhBYB71L16Xz4yfD2GbVP633dqDrU2E"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:27Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":0.995801,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:27Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f4e23b44-2d24-4c90-a9a8-8ec007deccc8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/f4e23b44-2d24-4c90-a9a8-8ec007deccc8","object_type":"peerconnection","payload":{"admin":true,"iat":1701705867,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODY3fQ.EaUtEkjGEjQLWhBYB71L16Xz4yfD2GbVP633dqDrU2E"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"data":{"peerconnection":"f4e23b44-2d24-4c90-a9a8-8ec007deccc8","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff4e23b44-2d24-4c90-a9a8-8ec007deccc8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff4e23b44-2d24-4c90-a9a8-8ec007deccc8","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"3c9e84db-cac5-490a-9075-b464f44f6ec0","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705867.341277} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f4d1f78b-22fc-4dbe-8c93-7d477b7dee84","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705867.3413527} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/f4e23b44-2d24-4c90-a9a8-8ec007deccc8' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"f4e23b44-2d24-4c90-a9a8-8ec007deccc8","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"d04ee52474d06733d512f905bc5cf01f","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"d04ee52474d06733d512f905bc5cf01f","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/497c39d1-dfca-4d34-ae0c-34835ab5b0f3"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/f4e23b44-2d24-4c90-a9a8-8ec007deccc8"}}},"level":"info","message":"received a callback"} device_1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:27Z"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","contextual_tuples":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff4e23b44-2d24-4c90-a9a8-8ec007deccc8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2c5a3b1f-b450-4b9b-b39b-38f5dc1f7c75","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705867.475376} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.858661,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:27Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f4e23b44-2d24-4c90-a9a8-8ec007deccc8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/f4e23b44-2d24-4c90-a9a8-8ec007deccc8","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/f4e23b44-2d24-4c90-a9a8-8ec007deccc8 204 402ms","method":"DELETE","requestID":"ccc4dfc0-92be-11ee-b645-7f04f10d7150","responseTime":402,"status":204,"url":"/peerconnections/f4e23b44-2d24-4c90-a9a8-8ec007deccc8"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3'"} device_1 | {"data":{"error":"MissingEntityError","message":"The requested Peerconnection does not exist in the database","method":"GET","stack":"MissingEntityError: The requested Peerconnection does not exist in the database\n at PeerconnectionRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async Object.getPeerconnectionsByPeerconnectionId (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/peerconnections/peerconnection/get.js:13:33)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:351:28","status":404,"url":"/peerconnections/f4e23b44-2d24-4c90-a9a8-8ec007deccc8"},"level":"error","message":"An error occurred during the handling of a request","requestID":"ccee39b0-92be-11ee-b645-7f04f10d7150"} device_1 | {"level":"info","message":"GET /peerconnections/f4e23b44-2d24-4c90-a9a8-8ec007deccc8 404 135ms","method":"GET","requestID":"ccee39b0-92be-11ee-b645-7f04f10d7150","responseTime":135,"status":404,"url":"/peerconnections/f4e23b44-2d24-4c90-a9a8-8ec007deccc8"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9'"} experiment_1 | {"data":{"error":"UnsuccessfulRequestError","message":"Server returned response with status 404","method":"POST","stack":"UnsuccessfulRequestError: Server returned response with status 404\n at Client.getPeerconnection (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/clients/device/client.js:870:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async handlePeerconnectionStatusChangedEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/peerconnectionStatusChanged.js:41:22)\n at async handleEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/index.js:20:20)\n at async file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/index.js:20:39","status":500,"url":"/callbacks/experiment"},"level":"error","message":"An error occurred during the handling of a request","requestID":"d04ee52474d06733d512f905bc5cf01f"} gateway_1 | {"time_local":"04/Dec/2023:16:04:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "500","body_bytes_sent":"89","request_time":"0.157","http_referrer":"","http_user_agent":"node-fetch","requestID":"d04ee52474d06733d512f905bc5cf01f"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 500 152ms","method":"POST","requestID":"d04ee52474d06733d512f905bc5cf01f","responseTime":152,"status":500,"url":"/callbacks/experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc52a4a76-78f5-46f6-9b45-4b6b41797608': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc52a4a76-78f5-46f6-9b45-4b6b41797608","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"07e8478d-fb4c-47ed-aa3e-35bc40ed2a7d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705867.8360167} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dd9967af-e238-4cb5-92ef-9e792e1bddc5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705867.836346} authorization_1 | {"level":"info","message":"POST /relations/update 200 115ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":115}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"} gateway_1 | {"time_local":"04/Dec/2023:16:04:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.461","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"07865a20fa94fef3763bb71e05c8690f"} experiment_1 | {"level":"info","message":"DELETE /experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608 204 1453ms","method":"DELETE","requestID":"07865a20fa94fef3763bb71e05c8690f","responseTime":1453,"status":204,"url":"/experiments/c52a4a76-78f5-46f6-9b45-4b6b41797608"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODY4fQ.RdIrdn8Tc7jw96C1uI3T9jT8cC4GbYGUQYAiFfEqEYQ","level":"info","message":"auth send jwt","requestID":"87f50a267b9356e78ab5434aa4d364ab"} gateway_1 | {"time_local":"04/Dec/2023:16:04:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1349","request_time":"6.248","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c29e0c9d2c7954f412398961745ecd7b"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"87f50a267b9356e78ab5434aa4d364ab","responseTime":4,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:04:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1351","request_time":"6.385","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7f918dbffaaad734138928ce0bafc1a5"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:28Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.796021,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:28Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705868,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODY4fQ.RdIrdn8Tc7jw96C1uI3T9jT8cC4GbYGUQYAiFfEqEYQ"} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/9b66a8ef-80d2-4f82-8c39-419f751aaca9' closed"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"6f243f31-bfbc-42d5-b5c1-7bd33bc96942","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705868.6558697} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"aba309d4-a2e7-4da3-ad70-1abff294fc6f","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705868.656041} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/497c39d1-dfca-4d34-ae0c-34835ab5b0f3' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 298ms","method":"POST","requestID":"87f50a267b9356e78ab5434aa4d364ab","responseTime":298,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.314","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"87f50a267b9356e78ab5434aa4d364ab"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODY4fQ.RdIrdn8Tc7jw96C1uI3T9jT8cC4GbYGUQYAiFfEqEYQ","level":"info","message":"auth send jwt","requestID":"2a010aea1e3c41f89808c185e0a483fa"} authentication_1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"2a010aea1e3c41f89808c185e0a483fa","responseTime":6,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:28Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.208407,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:28Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705868,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODY4fQ.RdIrdn8Tc7jw96C1uI3T9jT8cC4GbYGUQYAiFfEqEYQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"6e83cfb5-49d9-4d27-9a80-1ae61696ab33","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705868.9700844} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"de319377-99eb-467d-95c4-c5e878957138","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705868.9703646} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 120ms","method":"POST","requestID":"2a010aea1e3c41f89808c185e0a483fa","responseTime":120,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.160","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2a010aea1e3c41f89808c185e0a483fa"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODY5fQ.ISbMBvajaV6yg06eNwnOCKhCaLkyyy9w6Rs-Hjp8WrQ","level":"info","message":"auth send jwt","requestID":"6d1b8b78a915fec5dba4e546f322e8b0"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6d1b8b78a915fec5dba4e546f322e8b0","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:29Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.002346,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:29Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce","object_type":"device","payload":{"admin":true,"iat":1701705869,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODY5fQ.ISbMBvajaV6yg06eNwnOCKhCaLkyyy9w6Rs-Hjp8WrQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.181","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"6d1b8b78a915fec5dba4e546f322e8b0"} device_1 | {"level":"info","message":"PATCH /devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce 200 175ms","method":"PATCH","requestID":"6d1b8b78a915fec5dba4e546f322e8b0","responseTime":175,"status":200,"url":"/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcwfQ.OO-rSo7e7sbJC_3GuoAI7aW4eRcNCg62ZwhH-LYRNas","level":"info","message":"auth send jwt","requestID":"d826d017c300c3bc53264658e77ff081"} authentication_1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"d826d017c300c3bc53264658e77ff081","responseTime":6,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:30Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.800912,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:30Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce","object_type":"device","payload":{"admin":true,"iat":1701705870,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcwfQ.OO-rSo7e7sbJC_3GuoAI7aW4eRcNCg62ZwhH-LYRNas"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.124","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"d826d017c300c3bc53264658e77ff081"} device_1 | {"level":"info","message":"POST /devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce/websocket 200 116ms","method":"POST","requestID":"d826d017c300c3bc53264658e77ff081","responseTime":116,"status":200,"url":"/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce' connected"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"8e8ab0073cc8dd987b65f04cd911ad93","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"8e8ab0073cc8dd987b65f04cd911ad93","responseTime":2,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:04:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d/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":"8e8ab0073cc8dd987b65f04cd911ad93"} device_1 | {"level":"info","message":"OPTIONS /devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d/websocket 200 1ms","method":"OPTIONS","requestID":"8e8ab0073cc8dd987b65f04cd911ad93","responseTime":1,"status":200,"url":"/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcxfQ.72qapkpT9zaIgvzsn9hR1fJ0eJ-8EkMyQ39prmcphTw","level":"info","message":"auth send jwt","requestID":"e31b7a47c2cebec1a76445c2d67bd59a"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e31b7a47c2cebec1a76445c2d67bd59a","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:31Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.23135,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:31Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d","object_type":"device","payload":{"admin":true,"iat":1701705871,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcxfQ.72qapkpT9zaIgvzsn9hR1fJ0eJ-8EkMyQ39prmcphTw"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.123","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e31b7a47c2cebec1a76445c2d67bd59a"} device_1 | {"level":"info","message":"POST /devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d/websocket 200 116ms","method":"POST","requestID":"e31b7a47c2cebec1a76445c2d67bd59a","responseTime":116,"status":200,"url":"/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcxfQ.72qapkpT9zaIgvzsn9hR1fJ0eJ-8EkMyQ39prmcphTw","level":"info","message":"auth send jwt","requestID":"a4d4fd875e78b297ae86d2e32f92f140"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a4d4fd875e78b297ae86d2e32f92f140","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:31Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.088617,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:31Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d","object_type":"device","payload":{"admin":true,"iat":1701705871,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcxfQ.72qapkpT9zaIgvzsn9hR1fJ0eJ-8EkMyQ39prmcphTw"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d? 200 12ms","method":"GET","requestID":"a4d4fd875e78b297ae86d2e32f92f140","responseTime":12,"status":200,"url":"/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a4d4fd875e78b297ae86d2e32f92f140"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcxfQ.72qapkpT9zaIgvzsn9hR1fJ0eJ-8EkMyQ39prmcphTw","level":"info","message":"auth send jwt","requestID":"17285d58d26c8441b811e7a0e92cd1aa"} authentication_1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"17285d58d26c8441b811e7a0e92cd1aa","responseTime":6,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:31Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.207469,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:31Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce","object_type":"device","payload":{"admin":true,"iat":1701705871,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcxfQ.72qapkpT9zaIgvzsn9hR1fJ0eJ-8EkMyQ39prmcphTw"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce? 200 12ms","method":"GET","requestID":"17285d58d26c8441b811e7a0e92cd1aa","responseTime":12,"status":200,"url":"/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"17285d58d26c8441b811e7a0e92cd1aa"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcxfQ.72qapkpT9zaIgvzsn9hR1fJ0eJ-8EkMyQ39prmcphTw","level":"info","message":"auth send jwt","requestID":"c42cb0d232ecff877384286ddecf98b3"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c42cb0d232ecff877384286ddecf98b3","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:54572","level":"info","msg":"Received request.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:31Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.090795,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:31Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705871,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcxfQ.72qapkpT9zaIgvzsn9hR1fJ0eJ-8EkMyQ39prmcphTw"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"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:54572","level":"info","msg":"Received request.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:31Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.078936,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:31Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d","object_type":"device","payload":{"admin":true,"iat":1701705871,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcxfQ.72qapkpT9zaIgvzsn9hR1fJ0eJ-8EkMyQ39prmcphTw"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization_1 | {"client_addr":"127.0.0.1:54254","level":"info","msg":"Received request.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:31Z"} authorization_1 | {"client_addr":"127.0.0.1:54254","level":"info","msg":"Sent response.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.299081,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:31Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce","object_type":"device","payload":{"admin":true,"iat":1701705871,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcxfQ.72qapkpT9zaIgvzsn9hR1fJ0eJ-8EkMyQ39prmcphTw"} device_1 | {"level":"info","message":"GET /devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d? 200 14ms","method":"GET","requestID":"cf663e90-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d?"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce? 200 17ms","method":"GET","requestID":"cf66b3c0-92be-11ee-b645-7f04f10d7150","responseTime":17,"status":200,"url":"/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"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:54572","level":"info","msg":"Received request.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.254726,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54254","level":"info","msg":"Received request.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:32Z"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d","object_type":"device","payload":{"admin":true,"iat":1701705871,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcxfQ.72qapkpT9zaIgvzsn9hR1fJ0eJ-8EkMyQ39prmcphTw"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization_1 | {"client_addr":"127.0.0.1:54254","level":"info","msg":"Sent response.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.09625,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:32Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce","object_type":"device","payload":{"admin":true,"iat":1701705871,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcxfQ.72qapkpT9zaIgvzsn9hR1fJ0eJ-8EkMyQ39prmcphTw"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d? 200 18ms","method":"GET","requestID":"cfa2d260-92be-11ee-b645-7f04f10d7150","responseTime":18,"status":200,"url":"/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce? 200 17ms","method":"GET","requestID":"cfa32080-92be-11ee-b645-7f04f10d7150","responseTime":17,"status":200,"url":"/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Building connection plan"} experiment_1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"6cb7abc9-bb66-43bb-af30-606cf91995b0"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"7f93bd49-1add-4167-81a7-d2f5d8eafdc8"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"155aff4a-477f-4dfe-b7e5-83a6710a526b"}]},"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/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":1.485715,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:32Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705871,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcxfQ.72qapkpT9zaIgvzsn9hR1fJ0eJ-8EkMyQ39prmcphTw"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3dbd886e-0d81-4b09-b882-017175096c32#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3dbd886e-0d81-4b09-b882-017175096c32","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"a762446a-545f-4612-b171-9f265e40dc44","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705872.143232} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c6c6173b-230b-419e-907a-87869d2e1c72","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705872.1435435} authorization_1 | {"level":"info","message":"POST /relations/update 200 129ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":129}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"35029f7b-1ff0-4464-9277-80fdb74697cf","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705872.1508474} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4fdf1b03-b3bb-4169-b571-3f7ffd6a9c8a","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705872.151139} authorization_1 | {"level":"info","message":"POST /relations/update 200 110ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":110}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 819ms","method":"POST","requestID":"c42cb0d232ecff877384286ddecf98b3","responseTime":819,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:04:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.827","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c42cb0d232ecff877384286ddecf98b3"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcyfQ.QYjkVGW867k0DtQJYsASsMzQxd7BNdExZ3Zoi5VUxyA","level":"info","message":"auth send jwt","requestID":"2757ff3ec0ab8fe18877f1693b8fe286"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2757ff3ec0ab8fe18877f1693b8fe286","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.116811,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:32Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d","object_type":"device","payload":{"admin":true,"iat":1701705872,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcyfQ.QYjkVGW867k0DtQJYsASsMzQxd7BNdExZ3Zoi5VUxyA"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"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/7a951ef7-33ae-436d-b206-4a159c816ae7'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/7a951ef7-33ae-436d-b206-4a159c816ae7'"} 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 262ms","method":"POST","requestID":"cfa67be0-92be-11ee-b645-7f04f10d7150","responseTime":262,"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":"04/Dec/2023:16:04:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.132","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2757ff3ec0ab8fe18877f1693b8fe286"} device_1 | {"level":"info","message":"GET /devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d? 200 128ms","method":"GET","requestID":"2757ff3ec0ab8fe18877f1693b8fe286","responseTime":128,"status":200,"url":"/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcyfQ.QYjkVGW867k0DtQJYsASsMzQxd7BNdExZ3Zoi5VUxyA","level":"info","message":"auth send jwt","requestID":"1fbe00c461b0db2d42b42c453299144c"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1fbe00c461b0db2d42b42c453299144c","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.735447,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:32Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce","object_type":"device","payload":{"admin":true,"iat":1701705872,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcyfQ.QYjkVGW867k0DtQJYsASsMzQxd7BNdExZ3Zoi5VUxyA"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1fbe00c461b0db2d42b42c453299144c"} device_1 | {"level":"info","message":"GET /devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce? 200 9ms","method":"GET","requestID":"1fbe00c461b0db2d42b42c453299144c","responseTime":9,"status":200,"url":"/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce?"} device_1 | {"data":{"peerconnection":"7a951ef7-33ae-436d-b206-4a159c816ae7","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/7a951ef7-33ae-436d-b206-4a159c816ae7' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"7a951ef7-33ae-436d-b206-4a159c816ae7","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"c8c68c22590f066ff02bb46ee272d091","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"c8c68c22590f066ff02bb46ee272d091","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/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/7a951ef7-33ae-436d-b206-4a159c816ae7"}}},"level":"info","message":"received a callback"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 104ms","method":"POST","requestID":"c8c68c22590f066ff02bb46ee272d091","responseTime":104,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:04:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.106","http_referrer":"","http_user_agent":"node-fetch","requestID":"c8c68c22590f066ff02bb46ee272d091"} device_1 | {"data":{"peerconnection":"7a951ef7-33ae-436d-b206-4a159c816ae7","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcyfQ.QYjkVGW867k0DtQJYsASsMzQxd7BNdExZ3Zoi5VUxyA","level":"info","message":"auth send jwt","requestID":"b329e915e6601159df55295906c5b6c2"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b329e915e6601159df55295906c5b6c2","responseTime":5,"status":200,"url":"/auth"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Successfully created peerconnections for experiment"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/3dbd886e-0d81-4b09-b882-017175096c32"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":1.221398,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:32Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32","object_type":"experiment","payload":{"admin":true,"iat":1701705872,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcyfQ.QYjkVGW867k0DtQJYsASsMzQxd7BNdExZ3Zoi5VUxyA"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":1.069291,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:32Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7a951ef7-33ae-436d-b206-4a159c816ae7","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/7a951ef7-33ae-436d-b206-4a159c816ae7","object_type":"peerconnection","payload":{"admin":true,"iat":1701705872,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODcyfQ.QYjkVGW867k0DtQJYsASsMzQxd7BNdExZ3Zoi5VUxyA"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"data":{"peerconnection":"7a951ef7-33ae-436d-b206-4a159c816ae7","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7a951ef7-33ae-436d-b206-4a159c816ae7': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7a951ef7-33ae-436d-b206-4a159c816ae7","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"62027ab6-6d40-4270-8a19-8673c277a4be","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705872.7711833} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"34366036-3bf5-46fc-9d6b-70c643f0c0ac","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705872.7713284} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7a951ef7-33ae-436d-b206-4a159c816ae7' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"7a951ef7-33ae-436d-b206-4a159c816ae7","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"178e412e81b155cc5d5bced7e337a95e","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"178e412e81b155cc5d5bced7e337a95e","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/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/7a951ef7-33ae-436d-b206-4a159c816ae7"}}},"level":"info","message":"received a callback"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce'"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/7a951ef7-33ae-436d-b206-4a159c816ae7 204 352ms","method":"DELETE","requestID":"d00b5830-92be-11ee-b645-7f04f10d7150","responseTime":352,"status":204,"url":"/peerconnections/7a951ef7-33ae-436d-b206-4a159c816ae7"} device_1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d'"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:33Z"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","contextual_tuples":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7a951ef7-33ae-436d-b206-4a159c816ae7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dba26f9e-cb69-461b-8790-c8599833acba","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705873.0535815} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.361051,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:33Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7a951ef7-33ae-436d-b206-4a159c816ae7","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/7a951ef7-33ae-436d-b206-4a159c816ae7","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization_1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device_1 | {"data":{"error":"MissingEntityError","message":"The requested Peerconnection does not exist in the database","method":"GET","stack":"MissingEntityError: The requested Peerconnection does not exist in the database\n at PeerconnectionRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async Object.getPeerconnectionsByPeerconnectionId (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/peerconnections/peerconnection/get.js:13:33)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:351:28","status":404,"url":"/peerconnections/7a951ef7-33ae-436d-b206-4a159c816ae7"},"level":"error","message":"An error occurred during the handling of a request","requestID":"d0410e30-92be-11ee-b645-7f04f10d7150"} device_1 | {"level":"info","message":"GET /peerconnections/7a951ef7-33ae-436d-b206-4a159c816ae7 404 17ms","method":"GET","requestID":"d0410e30-92be-11ee-b645-7f04f10d7150","responseTime":17,"status":404,"url":"/peerconnections/7a951ef7-33ae-436d-b206-4a159c816ae7"} experiment_1 | {"data":{"error":"UnsuccessfulRequestError","message":"Server returned response with status 404","method":"POST","stack":"UnsuccessfulRequestError: Server returned response with status 404\n at Client.getPeerconnection (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/clients/device/client.js:870:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async handlePeerconnectionStatusChangedEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/peerconnectionStatusChanged.js:41:22)\n at async handleEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/index.js:20:20)\n at async file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/index.js:20:39","status":500,"url":"/callbacks/experiment"},"level":"error","message":"An error occurred during the handling of a request","requestID":"178e412e81b155cc5d5bced7e337a95e"} gateway_1 | {"time_local":"04/Dec/2023:16:04:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "500","body_bytes_sent":"89","request_time":"0.152","http_referrer":"","http_user_agent":"node-fetch","requestID":"178e412e81b155cc5d5bced7e337a95e"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 500 148ms","method":"POST","requestID":"178e412e81b155cc5d5bced7e337a95e","responseTime":148,"status":500,"url":"/callbacks/experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3dbd886e-0d81-4b09-b882-017175096c32"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3dbd886e-0d81-4b09-b882-017175096c32': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3dbd886e-0d81-4b09-b882-017175096c32","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"bde46b4c-0d8a-4544-9c11-e8506bb51476","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705873.2958543} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fccb4095-eedd-43ea-9ed8-41156925fe1b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705873.296203} authorization_1 | {"level":"info","message":"POST /relations/update 200 121ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":121}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/3dbd886e-0d81-4b09-b882-017175096c32"} gateway_1 | {"time_local":"04/Dec/2023:16:04:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/3dbd886e-0d81-4b09-b882-017175096c32 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.518","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b329e915e6601159df55295906c5b6c2"} experiment_1 | {"level":"info","message":"DELETE /experiments/3dbd886e-0d81-4b09-b882-017175096c32 204 1512ms","method":"DELETE","requestID":"b329e915e6601159df55295906c5b6c2","responseTime":1512,"status":204,"url":"/experiments/3dbd886e-0d81-4b09-b882-017175096c32"} gateway_1 | {"time_local":"04/Dec/2023:16:04:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1302","request_time":"3.993","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"845b7413cced770a2f5fa8daf6038bf4"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc0fQ.kIIQmL3hOb-w5BYqg2TDwo_p0GPIJDI1QvoeQS1H5Ek","level":"info","message":"auth send jwt","requestID":"2067f00a676229f740e387386de70125"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2067f00a676229f740e387386de70125","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} gateway_1 | {"time_local":"04/Dec/2023:16:04:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1384","request_time":"2.990","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d21d3f7adfdd50cdef408f4eb4400c76"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:34Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.818152,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:34Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705874,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc0fQ.kIIQmL3hOb-w5BYqg2TDwo_p0GPIJDI1QvoeQS1H5Ek"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"9577dddc-1bf5-4b30-91e2-bfb02b77deef","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705874.1564708} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5ecf4f27-4b30-4a16-8fac-fa1595e9a247","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705874.1566162} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/00fdbea6-b0dc-4185-a028-58b9a8cee5ce' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 392ms","method":"POST","requestID":"2067f00a676229f740e387386de70125","responseTime":392,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.402","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2067f00a676229f740e387386de70125"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc0fQ.kIIQmL3hOb-w5BYqg2TDwo_p0GPIJDI1QvoeQS1H5Ek","level":"info","message":"auth send jwt","requestID":"defcceedeb477343553858a8ef1ac153"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"defcceedeb477343553858a8ef1ac153","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:34Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.075761,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:34Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705874,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc0fQ.kIIQmL3hOb-w5BYqg2TDwo_p0GPIJDI1QvoeQS1H5Ek"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"23c14523-0106-4162-b7ea-06de8e9d640a","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705874.5628412} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d16758dc-9623-46e3-ac06-ac5a7417dffe","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705874.5629716} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ae0da3dc-42ec-4fde-baa2-2f25e391ed9d' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 222ms","method":"POST","requestID":"defcceedeb477343553858a8ef1ac153","responseTime":222,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.260","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"defcceedeb477343553858a8ef1ac153"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc1fQ.5nIawg7U0v2MkrSZskluYBqvDGz8n9vBas2Ix5npD70","level":"info","message":"auth send jwt","requestID":"48cd4451e37bf7d95eb50b99e1712dd2"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"48cd4451e37bf7d95eb50b99e1712dd2","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:35Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.844239,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:35Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f","object_type":"device","payload":{"admin":true,"iat":1701705875,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc1fQ.5nIawg7U0v2MkrSZskluYBqvDGz8n9vBas2Ix5npD70"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/9175027c-facb-44a8-bef3-d2a250a10f6f HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.125","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"48cd4451e37bf7d95eb50b99e1712dd2"} device_1 | {"level":"info","message":"PATCH /devices/9175027c-facb-44a8-bef3-d2a250a10f6f 200 120ms","method":"PATCH","requestID":"48cd4451e37bf7d95eb50b99e1712dd2","responseTime":120,"status":200,"url":"/devices/9175027c-facb-44a8-bef3-d2a250a10f6f"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc1fQ.5nIawg7U0v2MkrSZskluYBqvDGz8n9vBas2Ix5npD70","level":"info","message":"auth send jwt","requestID":"2029c81e2333425c2c875a74db072f79"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2029c81e2333425c2c875a74db072f79","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:35Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.103122,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:35Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f","object_type":"device","payload":{"admin":true,"iat":1701705875,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc1fQ.5nIawg7U0v2MkrSZskluYBqvDGz8n9vBas2Ix5npD70"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9175027c-facb-44a8-bef3-d2a250a10f6f/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.133","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"2029c81e2333425c2c875a74db072f79"} device_1 | {"level":"info","message":"POST /devices/9175027c-facb-44a8-bef3-d2a250a10f6f/websocket 200 127ms","method":"POST","requestID":"2029c81e2333425c2c875a74db072f79","responseTime":127,"status":200,"url":"/devices/9175027c-facb-44a8-bef3-d2a250a10f6f/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f' connected"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"215cea35e3300272af603fbbe83db968","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"215cea35e3300272af603fbbe83db968","responseTime":1,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:04:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/179cc927-7a37-4422-ab29-581cdb6fb09b/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":"215cea35e3300272af603fbbe83db968"} device_1 | {"level":"info","message":"OPTIONS /devices/179cc927-7a37-4422-ab29-581cdb6fb09b/websocket 200 1ms","method":"OPTIONS","requestID":"215cea35e3300272af603fbbe83db968","responseTime":1,"status":200,"url":"/devices/179cc927-7a37-4422-ab29-581cdb6fb09b/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc2fQ.Sp5gBhAt42TaDnNbADp5OK-ouASwg_LMG9FEHA3bICw","level":"info","message":"auth send jwt","requestID":"2c887e7f62124750526d9cac5314dad4"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2c887e7f62124750526d9cac5314dad4","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:36Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.84971,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:36Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b","object_type":"device","payload":{"admin":true,"iat":1701705876,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc2fQ.Sp5gBhAt42TaDnNbADp5OK-ouASwg_LMG9FEHA3bICw"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:04:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/179cc927-7a37-4422-ab29-581cdb6fb09b/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.139","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2c887e7f62124750526d9cac5314dad4"} device_1 | {"level":"info","message":"POST /devices/179cc927-7a37-4422-ab29-581cdb6fb09b/websocket 200 133ms","method":"POST","requestID":"2c887e7f62124750526d9cac5314dad4","responseTime":133,"status":200,"url":"/devices/179cc927-7a37-4422-ab29-581cdb6fb09b/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc2fQ.Sp5gBhAt42TaDnNbADp5OK-ouASwg_LMG9FEHA3bICw","level":"info","message":"auth send jwt","requestID":"f27a7b647f8d5c157f7e96347a5396f0"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f27a7b647f8d5c157f7e96347a5396f0","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:36Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.356915,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:36Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f","object_type":"device","payload":{"admin":true,"iat":1701705876,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc2fQ.Sp5gBhAt42TaDnNbADp5OK-ouASwg_LMG9FEHA3bICw"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/9175027c-facb-44a8-bef3-d2a250a10f6f? 200 11ms","method":"GET","requestID":"f27a7b647f8d5c157f7e96347a5396f0","responseTime":11,"status":200,"url":"/devices/9175027c-facb-44a8-bef3-d2a250a10f6f?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9175027c-facb-44a8-bef3-d2a250a10f6f? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f27a7b647f8d5c157f7e96347a5396f0"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc3fQ.Hr0A9BAuJ6JV01QvUZaP_r5Me-C3gT1pO7mw3YXHF8w","level":"info","message":"auth send jwt","requestID":"175325e77400f0f945201b090e3a0ca6"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"175325e77400f0f945201b090e3a0ca6","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.045479,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b","object_type":"device","payload":{"admin":true,"iat":1701705877,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc3fQ.Hr0A9BAuJ6JV01QvUZaP_r5Me-C3gT1pO7mw3YXHF8w"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/179cc927-7a37-4422-ab29-581cdb6fb09b? 200 10ms","method":"GET","requestID":"175325e77400f0f945201b090e3a0ca6","responseTime":10,"status":200,"url":"/devices/179cc927-7a37-4422-ab29-581cdb6fb09b?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/179cc927-7a37-4422-ab29-581cdb6fb09b? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"175325e77400f0f945201b090e3a0ca6"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc3fQ.Hr0A9BAuJ6JV01QvUZaP_r5Me-C3gT1pO7mw3YXHF8w","level":"info","message":"auth send jwt","requestID":"0c9474a4542893f7824eeb308d471b87"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0c9474a4542893f7824eeb308d471b87","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:54572","level":"info","msg":"Received request.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":0.889504,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705877,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc3fQ.Hr0A9BAuJ6JV01QvUZaP_r5Me-C3gT1pO7mw3YXHF8w"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"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:54572","level":"info","msg":"Received request.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":2.256552,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f","object_type":"device","payload":{"admin":true,"iat":1701705877,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc3fQ.Hr0A9BAuJ6JV01QvUZaP_r5Me-C3gT1pO7mw3YXHF8w"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:56656","level":"info","msg":"Received request.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"client_addr":"127.0.0.1:56656","level":"info","msg":"Sent response.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":2.063246,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b","object_type":"device","payload":{"admin":true,"iat":1701705877,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc3fQ.Hr0A9BAuJ6JV01QvUZaP_r5Me-C3gT1pO7mw3YXHF8w"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"GET /devices/9175027c-facb-44a8-bef3-d2a250a10f6f? 200 15ms","method":"GET","requestID":"d2ca5120-92be-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/9175027c-facb-44a8-bef3-d2a250a10f6f?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/179cc927-7a37-4422-ab29-581cdb6fb09b? 200 16ms","method":"GET","requestID":"d2cac650-92be-11ee-b645-7f04f10d7150","responseTime":16,"status":200,"url":"/devices/179cc927-7a37-4422-ab29-581cdb6fb09b?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"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/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.935972,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"client_addr":"127.0.0.1:56656","level":"info","msg":"Received request.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f","object_type":"device","payload":{"admin":true,"iat":1701705877,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc3fQ.Hr0A9BAuJ6JV01QvUZaP_r5Me-C3gT1pO7mw3YXHF8w"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization_1 | {"client_addr":"127.0.0.1:56656","level":"info","msg":"Sent response.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.077911,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b","object_type":"device","payload":{"admin":true,"iat":1701705877,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc3fQ.Hr0A9BAuJ6JV01QvUZaP_r5Me-C3gT1pO7mw3YXHF8w"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/9175027c-facb-44a8-bef3-d2a250a10f6f? 200 15ms","method":"GET","requestID":"d307f660-92be-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/9175027c-facb-44a8-bef3-d2a250a10f6f?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/179cc927-7a37-4422-ab29-581cdb6fb09b? 200 16ms","method":"GET","requestID":"d3081d70-92be-11ee-b645-7f04f10d7150","responseTime":16,"status":200,"url":"/devices/179cc927-7a37-4422-ab29-581cdb6fb09b?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Building connection plan"} experiment_1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"1915500f-3751-48e6-99ad-0d18cb9e6203"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"3c8f53ba-208f-4cff-add2-13b41e379af5"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"64e5b723-b65f-4066-89f6-83de124f9eb9"}]},"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/9175027c-facb-44a8-bef3-d2a250a10f6f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":1.172268,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705877,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc3fQ.Hr0A9BAuJ6JV01QvUZaP_r5Me-C3gT1pO7mw3YXHF8w"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe08351f8-d7d0-45c8-ba09-67793739662f#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe08351f8-d7d0-45c8-ba09-67793739662f","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"edc6a689-16a2-4231-bd85-bb63aba4f3e8","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705877.8532727} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"99671638-4854-4583-a7d7-8edc7b3303b6","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705877.8533564} authorization_1 | {"level":"info","message":"POST /relations/update 200 146ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":146}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"693aebed-3e7d-412c-ad22-72e0f6025484","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705877.8556888} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d19e7953-b480-455b-b0d6-e6a5f0f606ed","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705877.8561397} authorization_1 | {"level":"info","message":"POST /relations/update 200 129ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":129}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 843ms","method":"POST","requestID":"0c9474a4542893f7824eeb308d471b87","responseTime":843,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:04:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.853","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0c9474a4542893f7824eeb308d471b87"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc3fQ.Hr0A9BAuJ6JV01QvUZaP_r5Me-C3gT1pO7mw3YXHF8w","level":"info","message":"auth send jwt","requestID":"19bb679cb1645ec854957c4d00e08487"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"19bb679cb1645ec854957c4d00e08487","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.685672,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:37Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f","object_type":"device","payload":{"admin":true,"iat":1701705877,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc3fQ.Hr0A9BAuJ6JV01QvUZaP_r5Me-C3gT1pO7mw3YXHF8w"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/9272708f-bd15-464d-8ca4-43830c071b93'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9272708f-bd15-464d-8ca4-43830c071b93'"} 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 274ms","method":"POST","requestID":"d30b03a0-92be-11ee-b645-7f04f10d7150","responseTime":274,"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":"04/Dec/2023:16:04:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9175027c-facb-44a8-bef3-d2a250a10f6f? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.126","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"19bb679cb1645ec854957c4d00e08487"} device_1 | {"level":"info","message":"GET /devices/9175027c-facb-44a8-bef3-d2a250a10f6f? 200 121ms","method":"GET","requestID":"19bb679cb1645ec854957c4d00e08487","responseTime":121,"status":200,"url":"/devices/9175027c-facb-44a8-bef3-d2a250a10f6f?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc4fQ.CkQDGhznNtS57rnhjuA8x7NG1LgRgSfTSb8RhpDiTYY","level":"info","message":"auth send jwt","requestID":"f585527b0fd2092786ac91578df46045"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f585527b0fd2092786ac91578df46045","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:38Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.618537,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:38Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b","object_type":"device","payload":{"admin":true,"iat":1701705878,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc4fQ.CkQDGhznNtS57rnhjuA8x7NG1LgRgSfTSb8RhpDiTYY"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:04:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/179cc927-7a37-4422-ab29-581cdb6fb09b? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f585527b0fd2092786ac91578df46045"} device_1 | {"level":"info","message":"GET /devices/179cc927-7a37-4422-ab29-581cdb6fb09b? 200 9ms","method":"GET","requestID":"f585527b0fd2092786ac91578df46045","responseTime":9,"status":200,"url":"/devices/179cc927-7a37-4422-ab29-581cdb6fb09b?"} device_1 | {"data":{"peerconnection":"9272708f-bd15-464d-8ca4-43830c071b93","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Successfully created peerconnections for experiment"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9272708f-bd15-464d-8ca4-43830c071b93' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"9272708f-bd15-464d-8ca4-43830c071b93","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"1acdfb3bf4c195601c775f2e345ec40e","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"1acdfb3bf4c195601c775f2e345ec40e","responseTime":2,"status":200,"url":"/auth"} experiment_1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9272708f-bd15-464d-8ca4-43830c071b93"}}},"level":"info","message":"received a callback"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"1acdfb3bf4c195601c775f2e345ec40e","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:04: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.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"1acdfb3bf4c195601c775f2e345ec40e"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc5fQ.ENq9CuAMyxkPlfqPTLYnHl8rk8qsE_IoyfaF7RPqdek","level":"info","message":"auth send jwt","requestID":"99eb891e5c05308c13d6cd265555a4d2"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"99eb891e5c05308c13d6cd265555a4d2","responseTime":5,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/e08351f8-d7d0-45c8-ba09-67793739662f"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:39Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":0.968468,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:39Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f","object_type":"experiment","payload":{"admin":true,"iat":1701705879,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc5fQ.ENq9CuAMyxkPlfqPTLYnHl8rk8qsE_IoyfaF7RPqdek"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:39Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":1.208656,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:39Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9272708f-bd15-464d-8ca4-43830c071b93","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/9272708f-bd15-464d-8ca4-43830c071b93","object_type":"peerconnection","payload":{"admin":true,"iat":1701705879,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODc5fQ.ENq9CuAMyxkPlfqPTLYnHl8rk8qsE_IoyfaF7RPqdek"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"peerconnection":"9272708f-bd15-464d-8ca4-43830c071b93","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9272708f-bd15-464d-8ca4-43830c071b93': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9272708f-bd15-464d-8ca4-43830c071b93","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"47be9415-e354-4fe8-be8b-ee3d5574e750","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705879.2208989} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a1a094a2-532b-4f08-99f0-1470bf10fe59","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705879.2210524} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device_1 | {"data":{"peerconnection":"9272708f-bd15-464d-8ca4-43830c071b93","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/9272708f-bd15-464d-8ca4-43830c071b93 204 357ms","method":"DELETE","requestID":"d3df91b0-92be-11ee-b645-7f04f10d7150","responseTime":357,"status":204,"url":"/peerconnections/9272708f-bd15-464d-8ca4-43830c071b93"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b'"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe08351f8-d7d0-45c8-ba09-67793739662f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe08351f8-d7d0-45c8-ba09-67793739662f","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"f86a7892-46ef-4a81-8ff9-4a8db406b318","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705879.7012758} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c9a7e9f1-512c-422f-a741-5236b386a1ed","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705879.7015378} authorization_1 | {"level":"info","message":"POST /relations/update 200 113ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":113}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/e08351f8-d7d0-45c8-ba09-67793739662f"} gateway_1 | {"time_local":"04/Dec/2023:16:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/e08351f8-d7d0-45c8-ba09-67793739662f HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.269","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"99eb891e5c05308c13d6cd265555a4d2"} experiment_1 | {"level":"info","message":"DELETE /experiments/e08351f8-d7d0-45c8-ba09-67793739662f 204 1263ms","method":"DELETE","requestID":"99eb891e5c05308c13d6cd265555a4d2","responseTime":1263,"status":204,"url":"/experiments/e08351f8-d7d0-45c8-ba09-67793739662f"} gateway_1 | {"time_local":"04/Dec/2023:16:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1351","request_time":"4.874","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"dad1835e20eb6a6680864de2b2200513"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgwfQ.yyYjzJDOc0pTs46B_QBYk6fKbLw5MYTflTmPkmutYBk","level":"info","message":"auth send jwt","requestID":"c15bde972560e5c4914544a1099d026a"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c15bde972560e5c4914544a1099d026a","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} gateway_1 | {"time_local":"04/Dec/2023:16:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1379","request_time":"3.515","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"11aed78d0a467878ca60b889090bbce0"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:40Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.894339,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:40Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705880,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgwfQ.yyYjzJDOc0pTs46B_QBYk6fKbLw5MYTflTmPkmutYBk"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9e61b707-698d-4baa-8d06-9112cd2ed86b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705880.3918223} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"6c588e0e-3954-4fe3-baf3-07e24a7edad4","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705880.3921986} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/9175027c-facb-44a8-bef3-d2a250a10f6f' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 240ms","method":"POST","requestID":"c15bde972560e5c4914544a1099d026a","responseTime":240,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.253","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c15bde972560e5c4914544a1099d026a"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgwfQ.yyYjzJDOc0pTs46B_QBYk6fKbLw5MYTflTmPkmutYBk","level":"info","message":"auth send jwt","requestID":"c5c9c27863c0612b9ce311c053ec562b"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c5c9c27863c0612b9ce311c053ec562b","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:40Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.306238,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:40Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705880,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgwfQ.yyYjzJDOc0pTs46B_QBYk6fKbLw5MYTflTmPkmutYBk"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"436937e4-50ba-4632-92e4-6ecc238c97e3","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705880.6430154} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"11b3de59-613e-4a60-8441-3980538ef11b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705880.6431837} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/179cc927-7a37-4422-ab29-581cdb6fb09b' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 220ms","method":"POST","requestID":"c5c9c27863c0612b9ce311c053ec562b","responseTime":220,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.257","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c5c9c27863c0612b9ce311c053ec562b"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgxfQ.Wpv3Oriiqz-j4IuaQ5VnJb12Fax5Ku5o001hqiwPD3c","level":"info","message":"auth send jwt","requestID":"3c15059d2b3e10d66fec451303457590"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3c15059d2b3e10d66fec451303457590","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:41Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.833624,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:41Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613","object_type":"device","payload":{"admin":true,"iat":1701705881,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgxfQ.Wpv3Oriiqz-j4IuaQ5VnJb12Fax5Ku5o001hqiwPD3c"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgxfQ.Wpv3Oriiqz-j4IuaQ5VnJb12Fax5Ku5o001hqiwPD3c","level":"info","message":"auth send jwt","requestID":"e7572d6f455aaa2856e447b06ce1749d"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e7572d6f455aaa2856e447b06ce1749d","responseTime":3,"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":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:41Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.796477,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:41Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a","object_type":"device","payload":{"admin":true,"iat":1701705881,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgxfQ.Wpv3Oriiqz-j4IuaQ5VnJb12Fax5Ku5o001hqiwPD3c"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d5e50482-cd52-4404-857b-edff30e0c613 HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.686","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"3c15059d2b3e10d66fec451303457590"} device_1 | {"level":"info","message":"PATCH /devices/d5e50482-cd52-4404-857b-edff30e0c613 200 681ms","method":"PATCH","requestID":"3c15059d2b3e10d66fec451303457590","responseTime":681,"status":200,"url":"/devices/d5e50482-cd52-4404-857b-edff30e0c613"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgxfQ.Wpv3Oriiqz-j4IuaQ5VnJb12Fax5Ku5o001hqiwPD3c","level":"info","message":"auth send jwt","requestID":"57c2fdf09bcc3e12885c5412fdca80ee"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"57c2fdf09bcc3e12885c5412fdca80ee","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:41Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.904717,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:41Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613","object_type":"device","payload":{"admin":true,"iat":1701705881,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgxfQ.Wpv3Oriiqz-j4IuaQ5VnJb12Fax5Ku5o001hqiwPD3c"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"PATCH /devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a 200 817ms","method":"PATCH","requestID":"e7572d6f455aaa2856e447b06ce1749d","responseTime":817,"status":200,"url":"/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a"} gateway_1 | {"time_local":"04/Dec/2023:16:04:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.824","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"e7572d6f455aaa2856e447b06ce1749d"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgyfQ.x38PzTLaSPL1Ab_0oR-FPi_5WBuq_6NB4Ag-fXXpFD8","level":"info","message":"auth send jwt","requestID":"137f572ddc3960beadbbc346da213ab5"} authentication_1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"137f572ddc3960beadbbc346da213ab5","responseTime":6,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:42Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.136583,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:42Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a","object_type":"device","payload":{"admin":true,"iat":1701705882,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgyfQ.x38PzTLaSPL1Ab_0oR-FPi_5WBuq_6NB4Ag-fXXpFD8"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d5e50482-cd52-4404-857b-edff30e0c613/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.276","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"57c2fdf09bcc3e12885c5412fdca80ee"} device_1 | {"level":"info","message":"POST /devices/d5e50482-cd52-4404-857b-edff30e0c613/websocket 200 269ms","method":"POST","requestID":"57c2fdf09bcc3e12885c5412fdca80ee","responseTime":269,"status":200,"url":"/devices/d5e50482-cd52-4404-857b-edff30e0c613/websocket"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.250","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"137f572ddc3960beadbbc346da213ab5"} device_1 | {"level":"info","message":"POST /devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a/websocket 200 242ms","method":"POST","requestID":"137f572ddc3960beadbbc346da213ab5","responseTime":242,"status":200,"url":"/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613' connected"} device_1 | {"level":"info","message":"device 'http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgyfQ.x38PzTLaSPL1Ab_0oR-FPi_5WBuq_6NB4Ag-fXXpFD8","level":"info","message":"auth send jwt","requestID":"4f17fbb470c26272bc03c3a3ab40b119"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4f17fbb470c26272bc03c3a3ab40b119","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:42Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":2.43526,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:42Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613","object_type":"device","payload":{"admin":true,"iat":1701705882,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgyfQ.x38PzTLaSPL1Ab_0oR-FPi_5WBuq_6NB4Ag-fXXpFD8"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d5e50482-cd52-4404-857b-edff30e0c613? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4f17fbb470c26272bc03c3a3ab40b119"} device_1 | {"level":"info","message":"GET /devices/d5e50482-cd52-4404-857b-edff30e0c613? 200 15ms","method":"GET","requestID":"4f17fbb470c26272bc03c3a3ab40b119","responseTime":15,"status":200,"url":"/devices/d5e50482-cd52-4404-857b-edff30e0c613?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgyfQ.x38PzTLaSPL1Ab_0oR-FPi_5WBuq_6NB4Ag-fXXpFD8","level":"info","message":"auth send jwt","requestID":"b0db1f52d3ec57e0a0e890dd4b95bd9d"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b0db1f52d3ec57e0a0e890dd4b95bd9d","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:42Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.238455,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:42Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a","object_type":"device","payload":{"admin":true,"iat":1701705882,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgyfQ.x38PzTLaSPL1Ab_0oR-FPi_5WBuq_6NB4Ag-fXXpFD8"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:04:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b0db1f52d3ec57e0a0e890dd4b95bd9d"} device_1 | {"level":"info","message":"GET /devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a? 200 15ms","method":"GET","requestID":"b0db1f52d3ec57e0a0e890dd4b95bd9d","responseTime":15,"status":200,"url":"/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgyfQ.x38PzTLaSPL1Ab_0oR-FPi_5WBuq_6NB4Ag-fXXpFD8","level":"info","message":"auth send jwt","requestID":"2893a121fc229947cd9af60398c6f108"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2893a121fc229947cd9af60398c6f108","responseTime":5,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:42Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.078402,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:42Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705882,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgyfQ.x38PzTLaSPL1Ab_0oR-FPi_5WBuq_6NB4Ag-fXXpFD8"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Successfully booked experiment"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:42Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.32866,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:42Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613","object_type":"device","payload":{"admin":true,"iat":1701705882,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgyfQ.x38PzTLaSPL1Ab_0oR-FPi_5WBuq_6NB4Ag-fXXpFD8"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:42Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.686871,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:42Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a","object_type":"device","payload":{"admin":true,"iat":1701705882,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgyfQ.x38PzTLaSPL1Ab_0oR-FPi_5WBuq_6NB4Ag-fXXpFD8"} device_1 | {"level":"info","message":"GET /devices/d5e50482-cd52-4404-857b-edff30e0c613? 200 14ms","method":"GET","requestID":"d626c290-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/d5e50482-cd52-4404-857b-edff30e0c613?"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a? 200 12ms","method":"GET","requestID":"d62785e0-92be-11ee-b645-7f04f10d7150","responseTime":12,"status":200,"url":"/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"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/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:43Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.770699,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:43Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613","object_type":"device","payload":{"admin":true,"iat":1701705882,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgyfQ.x38PzTLaSPL1Ab_0oR-FPi_5WBuq_6NB4Ag-fXXpFD8"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:56662","level":"info","msg":"Received request.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:43Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"client_addr":"127.0.0.1:56662","level":"info","msg":"Sent response.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.935049,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:43Z"} device_1 | {"level":"info","message":"GET /devices/d5e50482-cd52-4404-857b-edff30e0c613? 200 13ms","method":"GET","requestID":"d6685f70-92be-11ee-b645-7f04f10d7150","responseTime":13,"status":200,"url":"/devices/d5e50482-cd52-4404-857b-edff30e0c613?"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a","object_type":"device","payload":{"admin":true,"iat":1701705882,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgyfQ.x38PzTLaSPL1Ab_0oR-FPi_5WBuq_6NB4Ag-fXXpFD8"} authorization_1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a? 200 15ms","method":"GET","requestID":"d668ad90-92be-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Building connection plan"} experiment_1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"b73efdde-6e2d-4d27-b361-b2b42197975e"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"759ec3c1-78eb-43d4-9f0b-67accf5b5395"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"1feb1782-cea3-422f-a5f4-d7220db52e44"}]},"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/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:43Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.925933,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:43Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705882,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgyfQ.x38PzTLaSPL1Ab_0oR-FPi_5WBuq_6NB4Ag-fXXpFD8"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb18f2bfb-90be-45d6-b421-90c6eff91255#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb18f2bfb-90be-45d6-b421-90c6eff91255","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"b0fde7fc-6b43-4fa3-bab3-9321ded53540","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705883.5078616} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4b0c624c-fc22-4d7d-af3d-4d532aa9840c","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705883.5082667} authorization_1 | {"level":"info","message":"POST /relations/update 200 136ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":136}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"e1d1e4a7-52dd-45b5-a755-602b0151b1d7","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705883.5115602} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d8cb5f68-3cde-4e31-ae8d-7b12cc8ba61e","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705883.5130787} authorization_1 | {"level":"info","message":"POST /relations/update 200 118ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":118}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 864ms","method":"POST","requestID":"2893a121fc229947cd9af60398c6f108","responseTime":864,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"815","request_time":"0.874","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2893a121fc229947cd9af60398c6f108"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgzfQ.Hc2sGR5laqxhE0pf_ay2rKyB8uBBAt_JFhXGfqJvTpo","level":"info","message":"auth send jwt","requestID":"f85933dd0ddad5d349ee3a6e703568bb"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f85933dd0ddad5d349ee3a6e703568bb","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:43Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.839474,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:43Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613","object_type":"device","payload":{"admin":true,"iat":1701705883,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgzfQ.Hc2sGR5laqxhE0pf_ay2rKyB8uBBAt_JFhXGfqJvTpo"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4'"} 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 264ms","method":"POST","requestID":"d66b6cb0-92be-11ee-b645-7f04f10d7150","responseTime":264,"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":"04/Dec/2023:16:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d5e50482-cd52-4404-857b-edff30e0c613? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.126","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f85933dd0ddad5d349ee3a6e703568bb"} device_1 | {"level":"info","message":"GET /devices/d5e50482-cd52-4404-857b-edff30e0c613? 200 121ms","method":"GET","requestID":"f85933dd0ddad5d349ee3a6e703568bb","responseTime":121,"status":200,"url":"/devices/d5e50482-cd52-4404-857b-edff30e0c613?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgzfQ.Hc2sGR5laqxhE0pf_ay2rKyB8uBBAt_JFhXGfqJvTpo","level":"info","message":"auth send jwt","requestID":"f20fccbf0d30dcdfa2c9cb55c51be6fa"} authentication_1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"f20fccbf0d30dcdfa2c9cb55c51be6fa","responseTime":7,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:43Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.74355,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:43Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a","object_type":"device","payload":{"admin":true,"iat":1701705883,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgzfQ.Hc2sGR5laqxhE0pf_ay2rKyB8uBBAt_JFhXGfqJvTpo"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f20fccbf0d30dcdfa2c9cb55c51be6fa"} device_1 | {"level":"info","message":"GET /devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a? 200 8ms","method":"GET","requestID":"f20fccbf0d30dcdfa2c9cb55c51be6fa","responseTime":8,"status":200,"url":"/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a?"} device_1 | {"data":{"peerconnection":"83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device_1 | {"data":{"peerconnection":"83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4","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/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"299abe7846c6a13769cdcbc620d47f16","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"299abe7846c6a13769cdcbc620d47f16","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/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4"}}},"level":"info","message":"received a callback"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgzfQ.Hc2sGR5laqxhE0pf_ay2rKyB8uBBAt_JFhXGfqJvTpo","level":"info","message":"auth send jwt","requestID":"847c264fdf9f7fbeb7e641bd3a16f57d"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"847c264fdf9f7fbeb7e641bd3a16f57d","responseTime":5,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:04:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.145","http_referrer":"","http_user_agent":"node-fetch","requestID":"299abe7846c6a13769cdcbc620d47f16"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 142ms","method":"POST","requestID":"299abe7846c6a13769cdcbc620d47f16","responseTime":142,"status":200,"url":"/callbacks/experiment"} device_1 | {"data":{"peerconnection":"83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Successfully created peerconnections for experiment"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:44Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":1.10943,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:44Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255","object_type":"experiment","payload":{"admin":true,"iat":1701705883,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgzfQ.Hc2sGR5laqxhE0pf_ay2rKyB8uBBAt_JFhXGfqJvTpo"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:44Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":1.257239,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:44Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4","object_type":"peerconnection","payload":{"admin":true,"iat":1701705883,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODgzfQ.Hc2sGR5laqxhE0pf_ay2rKyB8uBBAt_JFhXGfqJvTpo"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"peerconnection":"83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"13a6ec0c-ae36-4e8f-ac55-ec9fe0db4816","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705884.1274056} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"035ecd3a-d331-45c8-a4ad-8e6462e457f9","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705884.1276922} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"6c1e6ba16c7cbb742696862449f2d3ad","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"6c1e6ba16c7cbb742696862449f2d3ad","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/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4"}}},"level":"info","message":"received a callback"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a'"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4 204 334ms","method":"DELETE","requestID":"d6d61560-92be-11ee-b645-7f04f10d7150","responseTime":334,"status":204,"url":"/peerconnections/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4"} device_1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613'"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:44Z"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","contextual_tuples":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5ba45078-a160-4366-9896-410b1f93f562","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705884.437597} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.525209,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:44Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"data":{"error":"MissingEntityError","message":"The requested Peerconnection does not exist in the database","method":"GET","stack":"MissingEntityError: The requested Peerconnection does not exist in the database\n at PeerconnectionRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async Object.getPeerconnectionsByPeerconnectionId (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/peerconnections/peerconnection/get.js:13:33)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:351:28","status":404,"url":"/peerconnections/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4"},"level":"error","message":"An error occurred during the handling of a request","requestID":"d70a6bd0-92be-11ee-b645-7f04f10d7150"} device_1 | {"level":"info","message":"GET /peerconnections/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4 404 14ms","method":"GET","requestID":"d70a6bd0-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":404,"url":"/peerconnections/83ff92d1-07b7-4d7a-b6d3-e6bb58db9ed4"} experiment_1 | {"data":{"error":"UnsuccessfulRequestError","message":"Server returned response with status 404","method":"POST","stack":"UnsuccessfulRequestError: Server returned response with status 404\n at Client.getPeerconnection (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/clients/device/client.js:870:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async handlePeerconnectionStatusChangedEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/peerconnectionStatusChanged.js:41:22)\n at async handleEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/index.js:20:20)\n at async file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/index.js:20:39","status":500,"url":"/callbacks/experiment"},"level":"error","message":"An error occurred during the handling of a request","requestID":"6c1e6ba16c7cbb742696862449f2d3ad"} gateway_1 | {"time_local":"04/Dec/2023:16:04:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "500","body_bytes_sent":"89","request_time":"0.156","http_referrer":"","http_user_agent":"node-fetch","requestID":"6c1e6ba16c7cbb742696862449f2d3ad"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 500 153ms","method":"POST","requestID":"6c1e6ba16c7cbb742696862449f2d3ad","responseTime":153,"status":500,"url":"/callbacks/experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb18f2bfb-90be-45d6-b421-90c6eff91255': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb18f2bfb-90be-45d6-b421-90c6eff91255","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"a10c83a6-ea47-4547-aca6-4534ddee7d17","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705884.857053} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"246fd259-5519-47d8-9068-42cbaf2c3d87","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705884.8573563} authorization_1 | {"level":"info","message":"POST /relations/update 200 146ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":146}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"} gateway_1 | {"time_local":"04/Dec/2023:16:04:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b18f2bfb-90be-45d6-b421-90c6eff91255 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.935","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"847c264fdf9f7fbeb7e641bd3a16f57d"} experiment_1 | {"level":"info","message":"DELETE /experiments/b18f2bfb-90be-45d6-b421-90c6eff91255 204 1927ms","method":"DELETE","requestID":"847c264fdf9f7fbeb7e641bd3a16f57d","responseTime":1927,"status":204,"url":"/experiments/b18f2bfb-90be-45d6-b421-90c6eff91255"} gateway_1 | {"time_local":"04/Dec/2023:16:04:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1384","request_time":"3.408","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"52c0155c833e7c008feca774b130b45a"} gateway_1 | {"time_local":"04/Dec/2023:16:04:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1384","request_time":"3.290","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"52e5c9b03c6df92fcf155875cbf3afa0"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg1fQ.RXGfHiHurn0q5VqNWnj_3hVS6luURS6ZYkCK2F0Zqnw","level":"info","message":"auth send jwt","requestID":"520ccb1ee5a6a83f8b107a8c73654d28"} authentication_1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"520ccb1ee5a6a83f8b107a8c73654d28","responseTime":6,"status":200,"url":"/auth"} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/bb03ccd9-527f-4f7f-83df-37b6e36b0d1a' closed"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:45Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.85618,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:45Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705885,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg1fQ.RXGfHiHurn0q5VqNWnj_3hVS6luURS6ZYkCK2F0Zqnw"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"c21a4e11-b43c-40df-b37e-794837c6c40e","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705885.695518} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f80ca49a-995d-40a9-a2ac-6591ee742e1e","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705885.695796} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d5e50482-cd52-4404-857b-edff30e0c613' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 239ms","method":"POST","requestID":"520ccb1ee5a6a83f8b107a8c73654d28","responseTime":239,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"222","request_time":"0.251","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"520ccb1ee5a6a83f8b107a8c73654d28"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg1fQ.RXGfHiHurn0q5VqNWnj_3hVS6luURS6ZYkCK2F0Zqnw","level":"info","message":"auth send jwt","requestID":"ec5dc443d5e78f5e279ab2a95e0d5f46"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ec5dc443d5e78f5e279ab2a95e0d5f46","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:45Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.612937,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:45Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705885,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg1fQ.RXGfHiHurn0q5VqNWnj_3hVS6luURS6ZYkCK2F0Zqnw"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"2fe35f33-0bf0-4f21-bb23-7cebe787a3a7","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705885.9446485} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5ae38347-0e78-43aa-978a-268796f56f48","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705885.944914} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 131ms","method":"POST","requestID":"ec5dc443d5e78f5e279ab2a95e0d5f46","responseTime":131,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"222","request_time":"0.140","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ec5dc443d5e78f5e279ab2a95e0d5f46"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg2fQ.SdBIBTGWEXGOvN0c2IG-foQZTYgu_1jgK-krj65IOso","level":"info","message":"auth send jwt","requestID":"be958cf512532b5af7648e597fb53c70"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"be958cf512532b5af7648e597fb53c70","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:46Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.184481,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:46Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705886,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg2fQ.SdBIBTGWEXGOvN0c2IG-foQZTYgu_1jgK-krj65IOso"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"5fb80a1c-7b94-438e-923a-59f13c70c2be","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705886.0853765} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2ca6d512-16c9-42bb-8623-4dddb0255256","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705886.0855327} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 133ms","method":"POST","requestID":"be958cf512532b5af7648e597fb53c70","responseTime":133,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"222","request_time":"0.142","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"be958cf512532b5af7648e597fb53c70"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg2fQ.SdBIBTGWEXGOvN0c2IG-foQZTYgu_1jgK-krj65IOso","level":"info","message":"auth send jwt","requestID":"3903b36025b0da0666f1ccd81e8554cc"} authentication_1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"3903b36025b0da0666f1ccd81e8554cc","responseTime":6,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:46Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.37127,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:46Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705886,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg2fQ.SdBIBTGWEXGOvN0c2IG-foQZTYgu_1jgK-krj65IOso"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"32ef64e3-d88d-459c-bf61-ad9073bd661f","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705886.2302256} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"874388ae-9325-4104-99f2-8d4951be9bc5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705886.230507} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 178ms","method":"POST","requestID":"3903b36025b0da0666f1ccd81e8554cc","responseTime":178,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"222","request_time":"0.188","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3903b36025b0da0666f1ccd81e8554cc"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg2fQ.SdBIBTGWEXGOvN0c2IG-foQZTYgu_1jgK-krj65IOso","level":"info","message":"auth send jwt","requestID":"eace25396fe6f575d2710ec2e6db162d"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"eace25396fe6f575d2710ec2e6db162d","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:46Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.895439,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:46Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705886,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg2fQ.SdBIBTGWEXGOvN0c2IG-foQZTYgu_1jgK-krj65IOso"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"d82d2724-8039-48b3-a725-9f1b26c85612","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705886.4169543} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"91d56c88-a719-407d-b52e-ee3c679298c9","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705886.4171624} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 144ms","method":"POST","requestID":"eace25396fe6f575d2710ec2e6db162d","responseTime":144,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"222","request_time":"0.153","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eace25396fe6f575d2710ec2e6db162d"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg2fQ.SdBIBTGWEXGOvN0c2IG-foQZTYgu_1jgK-krj65IOso","level":"info","message":"auth send jwt","requestID":"3e28be75630bd0c0a376ca5e75094523"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3e28be75630bd0c0a376ca5e75094523","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:46Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.38881,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:46Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705886,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg2fQ.SdBIBTGWEXGOvN0c2IG-foQZTYgu_1jgK-krj65IOso"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"6d66af29-1c50-4b19-97c4-88a6b93ddd82","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705886.5711195} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a36bc5d7-5fd0-405c-a137-302f39c2d3ee","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705886.5712812} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 132ms","method":"POST","requestID":"3e28be75630bd0c0a376ca5e75094523","responseTime":132,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"222","request_time":"0.142","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3e28be75630bd0c0a376ca5e75094523"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg2fQ.SdBIBTGWEXGOvN0c2IG-foQZTYgu_1jgK-krj65IOso","level":"info","message":"auth send jwt","requestID":"5cfd6fc894ab16b4c6f4d2849575e62f"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5cfd6fc894ab16b4c6f4d2849575e62f","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:46Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.124145,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:46Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705886,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg2fQ.SdBIBTGWEXGOvN0c2IG-foQZTYgu_1jgK-krj65IOso"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"906186ee-1a59-4e42-814c-6a007e1beb59","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705886.7123199} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"119098e7-c535-43b9-85cd-9a8bfb70b40b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705886.7127423} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 140ms","method":"POST","requestID":"5cfd6fc894ab16b4c6f4d2849575e62f","responseTime":140,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"222","request_time":"0.152","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5cfd6fc894ab16b4c6f4d2849575e62f"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg2fQ.SdBIBTGWEXGOvN0c2IG-foQZTYgu_1jgK-krj65IOso","level":"info","message":"auth send jwt","requestID":"ce79cba7817826040707605ff40ac305"} authentication_1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"ce79cba7817826040707605ff40ac305","responseTime":6,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:46Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.736966,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:46Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705886,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg2fQ.SdBIBTGWEXGOvN0c2IG-foQZTYgu_1jgK-krj65IOso"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"4e215fdd-4ed7-4cb2-b578-225a7bcb6baa","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705886.8611572} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"57e5c04b-0c50-483e-b51a-ce5e390f1c89","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705886.861384} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 147ms","method":"POST","requestID":"ce79cba7817826040707605ff40ac305","responseTime":147,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"222","request_time":"0.157","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ce79cba7817826040707605ff40ac305"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg3fQ.5ooTh8zZDiNPGni6QKmO8oyObkwmxZ8-ib8N9QFK1qg","level":"info","message":"auth send jwt","requestID":"64f772b6a42535afb84deb68f7c34da8"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"64f772b6a42535afb84deb68f7c34da8","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:47Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.18495,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:47Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705887,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg3fQ.5ooTh8zZDiNPGni6QKmO8oyObkwmxZ8-ib8N9QFK1qg"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"f1343006-1f48-41b0-b2d9-98dc9e151f2a","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705887.0228484} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"df59685c-16fb-4692-980e-1f2733faee50","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705887.0231748} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 157ms","method":"POST","requestID":"64f772b6a42535afb84deb68f7c34da8","responseTime":157,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"222","request_time":"0.166","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"64f772b6a42535afb84deb68f7c34da8"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg3fQ.5ooTh8zZDiNPGni6QKmO8oyObkwmxZ8-ib8N9QFK1qg","level":"info","message":"auth send jwt","requestID":"30fe35ad9d0b27d4b9696e72f47bb4b0"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"30fe35ad9d0b27d4b9696e72f47bb4b0","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:47Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.254466,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:47Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705887,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg3fQ.5ooTh8zZDiNPGni6QKmO8oyObkwmxZ8-ib8N9QFK1qg"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"2d3a2b24-fcec-44ee-a712-e70fdc9cfcb0","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705887.1888325} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"15db7f04-6e0d-4766-87e1-4242f5529d30","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705887.1890402} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 166ms","method":"POST","requestID":"30fe35ad9d0b27d4b9696e72f47bb4b0","responseTime":166,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"223","request_time":"0.177","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"30fe35ad9d0b27d4b9696e72f47bb4b0"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg3fQ.5ooTh8zZDiNPGni6QKmO8oyObkwmxZ8-ib8N9QFK1qg","level":"info","message":"auth send jwt","requestID":"63d9903dc0e7034b64027c9ab6f5aaef"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"63d9903dc0e7034b64027c9ab6f5aaef","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:47Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.076479,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:47Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705887,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg3fQ.5ooTh8zZDiNPGni6QKmO8oyObkwmxZ8-ib8N9QFK1qg"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"09809020-c06d-4c83-8ea4-df99242ede6d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705887.367657} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9a654fd0-429b-4d9c-9e02-c1caa8247772","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705887.3680308} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 148ms","method":"POST","requestID":"63d9903dc0e7034b64027c9ab6f5aaef","responseTime":148,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"849","request_time":"0.159","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"63d9903dc0e7034b64027c9ab6f5aaef"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg3fQ.5ooTh8zZDiNPGni6QKmO8oyObkwmxZ8-ib8N9QFK1qg","level":"info","message":"auth send jwt","requestID":"9d03ce15ff7d205a63f69df303bb98cd"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9d03ce15ff7d205a63f69df303bb98cd","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:47Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.107477,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:47Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705887,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg3fQ.5ooTh8zZDiNPGni6QKmO8oyObkwmxZ8-ib8N9QFK1qg"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"d953b932-6ff9-43eb-98ef-03599828b661","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705887.5239658} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1bba8503-ba68-4f6f-9028-266fba8bd699","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705887.5242798} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 131ms","method":"POST","requestID":"9d03ce15ff7d205a63f69df303bb98cd","responseTime":131,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1072","request_time":"0.140","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9d03ce15ff7d205a63f69df303bb98cd"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg3fQ.5ooTh8zZDiNPGni6QKmO8oyObkwmxZ8-ib8N9QFK1qg","level":"info","message":"auth send jwt","requestID":"460c106b60fc373c147612654d6e4757"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"460c106b60fc373c147612654d6e4757","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:47Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.119898,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:47Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705887,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg3fQ.5ooTh8zZDiNPGni6QKmO8oyObkwmxZ8-ib8N9QFK1qg"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"586e86d4-eb95-494a-beab-b39f7569738d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705887.6648128} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"55f46721-3583-427b-90d3-a214789fafdb","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705887.6650808} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 126ms","method":"POST","requestID":"460c106b60fc373c147612654d6e4757","responseTime":126,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"850","request_time":"0.138","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"460c106b60fc373c147612654d6e4757"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg3fQ.5ooTh8zZDiNPGni6QKmO8oyObkwmxZ8-ib8N9QFK1qg","level":"info","message":"auth send jwt","requestID":"e04d49b2f1c33d7a08b608a2ce6de5b3"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e04d49b2f1c33d7a08b608a2ce6de5b3","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:47Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.161853,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:47Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/26404760-02f4-4cbc-b0be-6b1d1932f308","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/26404760-02f4-4cbc-b0be-6b1d1932f308","object_type":"device","payload":{"admin":true,"iat":1701705887,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg3fQ.5ooTh8zZDiNPGni6QKmO8oyObkwmxZ8-ib8N9QFK1qg"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"PATCH /devices/26404760-02f4-4cbc-b0be-6b1d1932f308? 200 113ms","method":"PATCH","requestID":"e04d49b2f1c33d7a08b608a2ce6de5b3","responseTime":113,"status":200,"url":"/devices/26404760-02f4-4cbc-b0be-6b1d1932f308?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/26404760-02f4-4cbc-b0be-6b1d1932f308? HTTP/1.1","status": "200","body_bytes_sent":"921","request_time":"0.122","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e04d49b2f1c33d7a08b608a2ce6de5b3"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg3fQ.5ooTh8zZDiNPGni6QKmO8oyObkwmxZ8-ib8N9QFK1qg","level":"info","message":"auth send jwt","requestID":"92d642027348fb5daeb7733bebdc5eea"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"92d642027348fb5daeb7733bebdc5eea","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:47Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.16115,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:47Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2061fe3a-662a-494c-bbfa-a70495c0badd","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/2061fe3a-662a-494c-bbfa-a70495c0badd","object_type":"device","payload":{"admin":true,"iat":1701705887,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg3fQ.5ooTh8zZDiNPGni6QKmO8oyObkwmxZ8-ib8N9QFK1qg"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"PATCH /devices/2061fe3a-662a-494c-bbfa-a70495c0badd? 200 115ms","method":"PATCH","requestID":"92d642027348fb5daeb7733bebdc5eea","responseTime":115,"status":200,"url":"/devices/2061fe3a-662a-494c-bbfa-a70495c0badd?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/2061fe3a-662a-494c-bbfa-a70495c0badd? HTTP/1.1","status": "200","body_bytes_sent":"1216","request_time":"0.125","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"92d642027348fb5daeb7733bebdc5eea"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg4fQ.QrcA97vDgBauxE__2rwlgNIBixxmDBLUBTl-XQrSiyA","level":"info","message":"auth send jwt","requestID":"e11d58ab14f082a6434215a598381d65"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e11d58ab14f082a6434215a598381d65","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:48Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.069801,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:48Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3239b7f0-4b56-4d84-8472-3c29672a79f3","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/3239b7f0-4b56-4d84-8472-3c29672a79f3","object_type":"device","payload":{"admin":true,"iat":1701705888,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg4fQ.QrcA97vDgBauxE__2rwlgNIBixxmDBLUBTl-XQrSiyA"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"PATCH /devices/3239b7f0-4b56-4d84-8472-3c29672a79f3? 200 116ms","method":"PATCH","requestID":"e11d58ab14f082a6434215a598381d65","responseTime":116,"status":200,"url":"/devices/3239b7f0-4b56-4d84-8472-3c29672a79f3?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/3239b7f0-4b56-4d84-8472-3c29672a79f3? HTTP/1.1","status": "200","body_bytes_sent":"922","request_time":"0.124","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e11d58ab14f082a6434215a598381d65"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg4fQ.QrcA97vDgBauxE__2rwlgNIBixxmDBLUBTl-XQrSiyA","level":"info","message":"auth send jwt","requestID":"d2e9d92efb9d02e5a63528a3d9c9459e"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d2e9d92efb9d02e5a63528a3d9c9459e","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:48Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.300997,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:48Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/26404760-02f4-4cbc-b0be-6b1d1932f308","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/26404760-02f4-4cbc-b0be-6b1d1932f308","object_type":"device","payload":{"admin":true,"iat":1701705888,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg4fQ.QrcA97vDgBauxE__2rwlgNIBixxmDBLUBTl-XQrSiyA"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:04:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/26404760-02f4-4cbc-b0be-6b1d1932f308? HTTP/1.1","status": "200","body_bytes_sent":"921","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d2e9d92efb9d02e5a63528a3d9c9459e"} device_1 | {"level":"info","message":"GET /devices/26404760-02f4-4cbc-b0be-6b1d1932f308? 200 12ms","method":"GET","requestID":"d2e9d92efb9d02e5a63528a3d9c9459e","responseTime":12,"status":200,"url":"/devices/26404760-02f4-4cbc-b0be-6b1d1932f308?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg4fQ.QrcA97vDgBauxE__2rwlgNIBixxmDBLUBTl-XQrSiyA","level":"info","message":"auth send jwt","requestID":"ae2a8dcfbbb00975c641f38aaa212c30"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ae2a8dcfbbb00975c641f38aaa212c30","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:48Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.820215,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:48Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2061fe3a-662a-494c-bbfa-a70495c0badd","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/2061fe3a-662a-494c-bbfa-a70495c0badd","object_type":"device","payload":{"admin":true,"iat":1701705888,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg4fQ.QrcA97vDgBauxE__2rwlgNIBixxmDBLUBTl-XQrSiyA"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:04:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2061fe3a-662a-494c-bbfa-a70495c0badd? HTTP/1.1","status": "200","body_bytes_sent":"1216","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ae2a8dcfbbb00975c641f38aaa212c30"} device_1 | {"level":"info","message":"GET /devices/2061fe3a-662a-494c-bbfa-a70495c0badd? 200 11ms","method":"GET","requestID":"ae2a8dcfbbb00975c641f38aaa212c30","responseTime":11,"status":200,"url":"/devices/2061fe3a-662a-494c-bbfa-a70495c0badd?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg4fQ.QrcA97vDgBauxE__2rwlgNIBixxmDBLUBTl-XQrSiyA","level":"info","message":"auth send jwt","requestID":"0a72e49abc384cb5d4a64feaefb18bd9"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0a72e49abc384cb5d4a64feaefb18bd9","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:48Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.173199,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:48Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3239b7f0-4b56-4d84-8472-3c29672a79f3","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/3239b7f0-4b56-4d84-8472-3c29672a79f3","object_type":"device","payload":{"admin":true,"iat":1701705888,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg4fQ.QrcA97vDgBauxE__2rwlgNIBixxmDBLUBTl-XQrSiyA"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3239b7f0-4b56-4d84-8472-3c29672a79f3? HTTP/1.1","status": "200","body_bytes_sent":"922","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0a72e49abc384cb5d4a64feaefb18bd9"} device_1 | {"level":"info","message":"GET /devices/3239b7f0-4b56-4d84-8472-3c29672a79f3? 200 11ms","method":"GET","requestID":"0a72e49abc384cb5d4a64feaefb18bd9","responseTime":11,"status":200,"url":"/devices/3239b7f0-4b56-4d84-8472-3c29672a79f3?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg4fQ.QrcA97vDgBauxE__2rwlgNIBixxmDBLUBTl-XQrSiyA","level":"info","message":"auth send jwt","requestID":"5026d3ed6218c52f25efd8802cff8700"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5026d3ed6218c52f25efd8802cff8700","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:48Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.742507,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:48Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705888,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg4fQ.QrcA97vDgBauxE__2rwlgNIBixxmDBLUBTl-XQrSiyA"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"6ca76927-9b4c-486b-b558-7e1abe11d9ae","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705888.2335286} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d74100ce-b0bd-4ea8-874d-636d91b9b0a2","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705888.2338622} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 124ms","method":"POST","requestID":"5026d3ed6218c52f25efd8802cff8700","responseTime":124,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"229","request_time":"0.130","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5026d3ed6218c52f25efd8802cff8700"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg4fQ.QrcA97vDgBauxE__2rwlgNIBixxmDBLUBTl-XQrSiyA","level":"info","message":"auth send jwt","requestID":"f73f37513eccd76d14db53ea6ca6376b"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f73f37513eccd76d14db53ea6ca6376b","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:48Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.331006,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:48Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705888,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg4fQ.QrcA97vDgBauxE__2rwlgNIBixxmDBLUBTl-XQrSiyA"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"0df874ee-8cb8-4958-8af5-1f6d40c291f1","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705888.36898} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1c4d4ded-42b1-40cf-8bd2-a8f8d7ac114f","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705888.3691623} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 133ms","method":"POST","requestID":"f73f37513eccd76d14db53ea6ca6376b","responseTime":134,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"435","request_time":"0.142","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f73f37513eccd76d14db53ea6ca6376b"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg4fQ.QrcA97vDgBauxE__2rwlgNIBixxmDBLUBTl-XQrSiyA","level":"info","message":"auth send jwt","requestID":"4e438e9ed18685a54da2f58278198e68"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4e438e9ed18685a54da2f58278198e68","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:48Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.291653,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:48Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705888,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODg4fQ.QrcA97vDgBauxE__2rwlgNIBixxmDBLUBTl-XQrSiyA"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"4bc4fd8e-1a66-49f9-824c-f8db12778868","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705888.5126934} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5ed6ec1b-007b-4379-9fb6-f6908745817d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705888.5130332} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 133ms","method":"POST","requestID":"4e438e9ed18685a54da2f58278198e68","responseTime":133,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.171","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4e438e9ed18685a54da2f58278198e68"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"9ee8d9f8543e982a109e487b3f57963e","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"9ee8d9f8543e982a109e487b3f57963e","responseTime":2,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:04:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1219da84-073c-4867-9f58-76ba9a3d4e34/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":"9ee8d9f8543e982a109e487b3f57963e"} device_1 | {"level":"info","message":"OPTIONS /devices/1219da84-073c-4867-9f58-76ba9a3d4e34/websocket 200 1ms","method":"OPTIONS","requestID":"9ee8d9f8543e982a109e487b3f57963e","responseTime":1,"status":200,"url":"/devices/1219da84-073c-4867-9f58-76ba9a3d4e34/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkwfQ.VIWb28P9q1mz572dbqyv4QFs2ua3iWH8GXlnEx73mkk","level":"info","message":"auth send jwt","requestID":"d3cd015e156a814f12031ee391eba0fb"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d3cd015e156a814f12031ee391eba0fb","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:50Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.82903,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:50Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1219da84-073c-4867-9f58-76ba9a3d4e34","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/1219da84-073c-4867-9f58-76ba9a3d4e34","object_type":"device","payload":{"admin":true,"iat":1701705890,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkwfQ.VIWb28P9q1mz572dbqyv4QFs2ua3iWH8GXlnEx73mkk"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"51e62a1a0ca3686c32341293e7a8b36a","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"51e62a1a0ca3686c32341293e7a8b36a","responseTime":1,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:04:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/c729c85f-d9a0-4685-b859-d93ac993dc1a/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":"51e62a1a0ca3686c32341293e7a8b36a"} device_1 | {"level":"info","message":"OPTIONS /devices/c729c85f-d9a0-4685-b859-d93ac993dc1a/websocket 200 1ms","method":"OPTIONS","requestID":"51e62a1a0ca3686c32341293e7a8b36a","responseTime":1,"status":200,"url":"/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkwfQ.VIWb28P9q1mz572dbqyv4QFs2ua3iWH8GXlnEx73mkk","level":"info","message":"auth send jwt","requestID":"63aa3e17c91bb5f0e585f60895fb295b"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"63aa3e17c91bb5f0e585f60895fb295b","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:50Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.027818,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:50Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a","object_type":"device","payload":{"admin":true,"iat":1701705890,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkwfQ.VIWb28P9q1mz572dbqyv4QFs2ua3iWH8GXlnEx73mkk"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:04:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1219da84-073c-4867-9f58-76ba9a3d4e34/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.170","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d3cd015e156a814f12031ee391eba0fb"} device_1 | {"level":"info","message":"POST /devices/1219da84-073c-4867-9f58-76ba9a3d4e34/websocket 200 165ms","method":"POST","requestID":"d3cd015e156a814f12031ee391eba0fb","responseTime":165,"status":200,"url":"/devices/1219da84-073c-4867-9f58-76ba9a3d4e34/websocket"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c729c85f-d9a0-4685-b859-d93ac993dc1a/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.284","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"63aa3e17c91bb5f0e585f60895fb295b"} device_1 | {"level":"info","message":"POST /devices/c729c85f-d9a0-4685-b859-d93ac993dc1a/websocket 200 278ms","method":"POST","requestID":"63aa3e17c91bb5f0e585f60895fb295b","responseTime":278,"status":200,"url":"/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/1219da84-073c-4867-9f58-76ba9a3d4e34' connected"} device_1 | {"level":"info","message":"device 'http://localhost/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkxfQ.NLrbCkMZLrq_chig1hvlNdsGM7MgOiHvkbFSayYOKvo","level":"info","message":"auth send jwt","requestID":"ee21c4bf891760ebbb079d3a18e56a21"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ee21c4bf891760ebbb079d3a18e56a21","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.25988,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a","object_type":"device","payload":{"admin":true,"iat":1701705891,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkxfQ.NLrbCkMZLrq_chig1hvlNdsGM7MgOiHvkbFSayYOKvo"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:04:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c729c85f-d9a0-4685-b859-d93ac993dc1a? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ee21c4bf891760ebbb079d3a18e56a21"} device_1 | {"level":"info","message":"GET /devices/c729c85f-d9a0-4685-b859-d93ac993dc1a? 200 13ms","method":"GET","requestID":"ee21c4bf891760ebbb079d3a18e56a21","responseTime":13,"status":200,"url":"/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkxfQ.NLrbCkMZLrq_chig1hvlNdsGM7MgOiHvkbFSayYOKvo","level":"info","message":"auth send jwt","requestID":"7a14258a71024d6d1d8d69a910cc8cec"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7a14258a71024d6d1d8d69a910cc8cec","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:54572","level":"info","msg":"Received request.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.392758,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705891,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkxfQ.NLrbCkMZLrq_chig1hvlNdsGM7MgOiHvkbFSayYOKvo"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"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:54572","level":"info","msg":"Received request.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.314714,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/23336c4d-d305-4dcf-bfa6-4bf33b3afd8b","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/23336c4d-d305-4dcf-bfa6-4bf33b3afd8b","object_type":"device","payload":{"admin":true,"iat":1701705891,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkxfQ.NLrbCkMZLrq_chig1hvlNdsGM7MgOiHvkbFSayYOKvo"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:41310","level":"info","msg":"Received request.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"client_addr":"127.0.0.1:41310","level":"info","msg":"Sent response.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.069485,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a","object_type":"device","payload":{"admin":true,"iat":1701705891,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkxfQ.NLrbCkMZLrq_chig1hvlNdsGM7MgOiHvkbFSayYOKvo"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"GET /devices/23336c4d-d305-4dcf-bfa6-4bf33b3afd8b? 200 12ms","method":"GET","requestID":"db2ff9a0-92be-11ee-b645-7f04f10d7150","responseTime":12,"status":200,"url":"/devices/23336c4d-d305-4dcf-bfa6-4bf33b3afd8b?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/c729c85f-d9a0-4685-b859-d93ac993dc1a? 200 15ms","method":"GET","requestID":"db3047c0-92be-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"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:54572","level":"info","msg":"Received request.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:51Z"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.848642,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1219da84-073c-4867-9f58-76ba9a3d4e34","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/1219da84-073c-4867-9f58-76ba9a3d4e34","object_type":"device","payload":{"admin":true,"iat":1701705891,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkxfQ.NLrbCkMZLrq_chig1hvlNdsGM7MgOiHvkbFSayYOKvo"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"client_addr":"127.0.0.1:41310","level":"info","msg":"Received request.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"client_addr":"127.0.0.1:41310","level":"info","msg":"Sent response.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.891772,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a","object_type":"device","payload":{"admin":true,"iat":1701705891,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkxfQ.NLrbCkMZLrq_chig1hvlNdsGM7MgOiHvkbFSayYOKvo"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/1219da84-073c-4867-9f58-76ba9a3d4e34? 200 14ms","method":"GET","requestID":"db720bb0-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/1219da84-073c-4867-9f58-76ba9a3d4e34?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/c729c85f-d9a0-4685-b859-d93ac993dc1a? 200 13ms","method":"GET","requestID":"db7259d0-92be-11ee-b645-7f04f10d7150","responseTime":13,"status":200,"url":"/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Building connection plan"} experiment_1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"63174bbf-2103-4670-be0d-d9f3ca1a57a0"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"c89e3904-e487-4b89-93a9-3d7c78e351a6"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"6c15e7c7-16dd-4bf7-afb6-d20c00d2718c"}]},"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/1219da84-073c-4867-9f58-76ba9a3d4e34"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.927848,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705891,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkxfQ.NLrbCkMZLrq_chig1hvlNdsGM7MgOiHvkbFSayYOKvo"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3e041e06-f720-48c1-8049-cb6938a94fec#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3e041e06-f720-48c1-8049-cb6938a94fec","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"318b1c71-dcea-46ae-a173-f9945e143962","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705891.95766} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"53c0b676-4268-4c90-9bee-6ff525e84e43","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705891.9578216} authorization_1 | {"level":"info","message":"POST /relations/update 200 133ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":133}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"107917ae-db97-43de-9ac6-35bc33a18d30","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705891.960544} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5b17f077-996d-4cb8-9dc1-1514bbb6f5d4","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705891.960939} authorization_1 | {"level":"info","message":"POST /relations/update 200 113ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":113}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 831ms","method":"POST","requestID":"7a14258a71024d6d1d8d69a910cc8cec","responseTime":831,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:04: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.840","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7a14258a71024d6d1d8d69a910cc8cec"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkxfQ.NLrbCkMZLrq_chig1hvlNdsGM7MgOiHvkbFSayYOKvo","level":"info","message":"auth send jwt","requestID":"4854c35b237d32add05ff0bbbc4f6a76"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4854c35b237d32add05ff0bbbc4f6a76","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.950347,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:51Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1219da84-073c-4867-9f58-76ba9a3d4e34","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/1219da84-073c-4867-9f58-76ba9a3d4e34","object_type":"device","payload":{"admin":true,"iat":1701705891,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkxfQ.NLrbCkMZLrq_chig1hvlNdsGM7MgOiHvkbFSayYOKvo"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/3b308669-85b2-4e1f-b075-5f0bb68efb69'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/3b308669-85b2-4e1f-b075-5f0bb68efb69'"} 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 264ms","method":"POST","requestID":"db74f1e0-92be-11ee-b645-7f04f10d7150","responseTime":264,"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":"04/Dec/2023:16:04:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1219da84-073c-4867-9f58-76ba9a3d4e34? HTTP/1.1","status": "200","body_bytes_sent":"228","request_time":"0.129","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4854c35b237d32add05ff0bbbc4f6a76"} device_1 | {"level":"info","message":"GET /devices/1219da84-073c-4867-9f58-76ba9a3d4e34? 200 124ms","method":"GET","requestID":"4854c35b237d32add05ff0bbbc4f6a76","responseTime":124,"status":200,"url":"/devices/1219da84-073c-4867-9f58-76ba9a3d4e34?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkyfQ.p_iTme8NS6X09Ep35F41Da1BC0CKiRmW2o-KrBOChIk","level":"info","message":"auth send jwt","requestID":"51b563e9d8535d61a7aeef69177b62f0"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"51b563e9d8535d61a7aeef69177b62f0","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:52Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.675067,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:52Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a","object_type":"device","payload":{"admin":true,"iat":1701705892,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkyfQ.p_iTme8NS6X09Ep35F41Da1BC0CKiRmW2o-KrBOChIk"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:04:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c729c85f-d9a0-4685-b859-d93ac993dc1a? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"51b563e9d8535d61a7aeef69177b62f0"} device_1 | {"level":"info","message":"GET /devices/c729c85f-d9a0-4685-b859-d93ac993dc1a? 200 9ms","method":"GET","requestID":"51b563e9d8535d61a7aeef69177b62f0","responseTime":9,"status":200,"url":"/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a?"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/3b308669-85b2-4e1f-b075-5f0bb68efb69' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"3b308669-85b2-4e1f-b075-5f0bb68efb69","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"ab13dbd6ec861e10817399fa9f823d3c","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"ab13dbd6ec861e10817399fa9f823d3c","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/1219da84-073c-4867-9f58-76ba9a3d4e34"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/3b308669-85b2-4e1f-b075-5f0bb68efb69"}}},"level":"info","message":"received a callback"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkyfQ.p_iTme8NS6X09Ep35F41Da1BC0CKiRmW2o-KrBOChIk","level":"info","message":"auth send jwt","requestID":"af0bb45c6d7a997d272f3488b84541ec"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"af0bb45c6d7a997d272f3488b84541ec","responseTime":3,"status":200,"url":"/auth"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Successfully created peerconnections for experiment"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/3e041e06-f720-48c1-8049-cb6938a94fec"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:52Z"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 92ms","method":"POST","requestID":"ab13dbd6ec861e10817399fa9f823d3c","responseTime":92,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:04: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.096","http_referrer":"","http_user_agent":"node-fetch","requestID":"ab13dbd6ec861e10817399fa9f823d3c"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":3.108555,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:52Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec","object_type":"experiment","payload":{"admin":true,"iat":1701705892,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkyfQ.p_iTme8NS6X09Ep35F41Da1BC0CKiRmW2o-KrBOChIk"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:52Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":1.236434,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:52Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3b308669-85b2-4e1f-b075-5f0bb68efb69","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/3b308669-85b2-4e1f-b075-5f0bb68efb69","object_type":"peerconnection","payload":{"admin":true,"iat":1701705892,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkyfQ.p_iTme8NS6X09Ep35F41Da1BC0CKiRmW2o-KrBOChIk"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"peerconnection":"3b308669-85b2-4e1f-b075-5f0bb68efb69","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3b308669-85b2-4e1f-b075-5f0bb68efb69': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3b308669-85b2-4e1f-b075-5f0bb68efb69","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"f8c9ba83-9c20-4156-ad9f-fb848b0ef3c8","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705892.4768615} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2882d66d-c7d9-450a-9eb1-7bb4cca61d27","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705892.4770195} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"data":{"peerconnection":"3b308669-85b2-4e1f-b075-5f0bb68efb69","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/3b308669-85b2-4e1f-b075-5f0bb68efb69 204 299ms","method":"DELETE","requestID":"dbcc39a0-92be-11ee-b645-7f04f10d7150","responseTime":299,"status":204,"url":"/peerconnections/3b308669-85b2-4e1f-b075-5f0bb68efb69"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/1219da84-073c-4867-9f58-76ba9a3d4e34'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/1219da84-073c-4867-9f58-76ba9a3d4e34'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/c729c85f-d9a0-4685-b859-d93ac993dc1a'"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3e041e06-f720-48c1-8049-cb6938a94fec': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3e041e06-f720-48c1-8049-cb6938a94fec","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"661b8121-9604-4c3b-a9f4-91a0514fef8a","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705892.9543798} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4087594e-9c5e-4220-8d6e-21f7a5375997","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705892.9545524} authorization_1 | {"level":"info","message":"POST /relations/update 200 111ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":111}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/3e041e06-f720-48c1-8049-cb6938a94fec"} gateway_1 | {"time_local":"04/Dec/2023:16:04:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/3e041e06-f720-48c1-8049-cb6938a94fec HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.317","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"af0bb45c6d7a997d272f3488b84541ec"} experiment_1 | {"level":"info","message":"DELETE /experiments/3e041e06-f720-48c1-8049-cb6938a94fec 204 1312ms","method":"DELETE","requestID":"af0bb45c6d7a997d272f3488b84541ec","responseTime":1312,"status":204,"url":"/experiments/3e041e06-f720-48c1-8049-cb6938a94fec"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkzfQ.jkP0EwopJLghXcVg6OTRid4zY6TpzszlFPPqqWSw0RI","level":"info","message":"auth send jwt","requestID":"5ec94e0c6340da0441f7bba6830d0316"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5ec94e0c6340da0441f7bba6830d0316","responseTime":5,"status":200,"url":"/auth"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:53Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.752408,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:53Z"} gateway_1 | {"time_local":"04/Dec/2023:16:04:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1351","request_time":"2.778","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a113dd3bf213c9bf680fd9b92bfd439d"} gateway_1 | {"time_local":"04/Dec/2023:16:04:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1350","request_time":"2.914","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a436c4608c6e2c40ba620dff2915e78e"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705893,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkzfQ.jkP0EwopJLghXcVg6OTRid4zY6TpzszlFPPqqWSw0RI"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/c729c85f-d9a0-4685-b859-d93ac993dc1a' closed"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"ee8edcf9-b780-4ba1-8875-5a48e4523c4b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705893.6564012} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f63f16af-5be5-452a-a4cc-a5e3a30d0bee","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705893.6566062} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/1219da84-073c-4867-9f58-76ba9a3d4e34' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 241ms","method":"POST","requestID":"5ec94e0c6340da0441f7bba6830d0316","responseTime":241,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.251","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5ec94e0c6340da0441f7bba6830d0316"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkzfQ.jkP0EwopJLghXcVg6OTRid4zY6TpzszlFPPqqWSw0RI","level":"info","message":"auth send jwt","requestID":"169530e91b1665ebcaba4aec9b9fa80e"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"169530e91b1665ebcaba4aec9b9fa80e","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:53Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.244141,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:53Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705893,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODkzfQ.jkP0EwopJLghXcVg6OTRid4zY6TpzszlFPPqqWSw0RI"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"97c4d6bd-336c-4aab-8713-d660a2d5e274","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705893.9098818} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b134c1ec-0895-4fc6-98a6-8f04bb90df41","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705893.9099808} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 148ms","method":"POST","requestID":"169530e91b1665ebcaba4aec9b9fa80e","responseTime":148,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.181","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"169530e91b1665ebcaba4aec9b9fa80e"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"b075bde46fc7669c9193c62c3890d002","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"b075bde46fc7669c9193c62c3890d002","responseTime":2,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:04:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/853c5592-d1fb-4237-b398-4db02934e8a9/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":"b075bde46fc7669c9193c62c3890d002"} device_1 | {"level":"info","message":"OPTIONS /devices/853c5592-d1fb-4237-b398-4db02934e8a9/websocket 200 2ms","method":"OPTIONS","requestID":"b075bde46fc7669c9193c62c3890d002","responseTime":2,"status":200,"url":"/devices/853c5592-d1fb-4237-b398-4db02934e8a9/websocket"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"b5ed5a85db75236f72ba311980fbf690","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"b5ed5a85db75236f72ba311980fbf690","responseTime":1,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:04:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927/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":"b5ed5a85db75236f72ba311980fbf690"} device_1 | {"level":"info","message":"OPTIONS /devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927/websocket 200 0ms","method":"OPTIONS","requestID":"b5ed5a85db75236f72ba311980fbf690","responseTime":0,"status":200,"url":"/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk1fQ.7NP_eBhMFFp7a9514VUnERHqD09qZqJW_S8dkkbiE-I","level":"info","message":"auth send jwt","requestID":"76e8ef2e760c68d5391b44bcaed4edf8"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"76e8ef2e760c68d5391b44bcaed4edf8","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk1fQ.7NP_eBhMFFp7a9514VUnERHqD09qZqJW_S8dkkbiE-I","level":"info","message":"auth send jwt","requestID":"db6b6c6d3caa49b4866777e1fd3de972"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:55Z"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"db6b6c6d3caa49b4866777e1fd3de972","responseTime":3,"status":200,"url":"/auth"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.903025,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:55Z"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/853c5592-d1fb-4237-b398-4db02934e8a9","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/853c5592-d1fb-4237-b398-4db02934e8a9","object_type":"device","payload":{"admin":true,"iat":1701705895,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk1fQ.7NP_eBhMFFp7a9514VUnERHqD09qZqJW_S8dkkbiE-I"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:55Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.78822,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:55Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927","object_type":"device","payload":{"admin":true,"iat":1701705895,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk1fQ.7NP_eBhMFFp7a9514VUnERHqD09qZqJW_S8dkkbiE-I"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:04:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/853c5592-d1fb-4237-b398-4db02934e8a9/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.145","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"76e8ef2e760c68d5391b44bcaed4edf8"} device_1 | {"level":"info","message":"POST /devices/853c5592-d1fb-4237-b398-4db02934e8a9/websocket 200 138ms","method":"POST","requestID":"76e8ef2e760c68d5391b44bcaed4edf8","responseTime":138,"status":200,"url":"/devices/853c5592-d1fb-4237-b398-4db02934e8a9/websocket"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device_1 | {"level":"info","message":"POST /devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927/websocket 200 269ms","method":"POST","requestID":"db6b6c6d3caa49b4866777e1fd3de972","responseTime":269,"status":200,"url":"/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927/websocket"} gateway_1 | {"time_local":"04/Dec/2023:16:04:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.275","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"db6b6c6d3caa49b4866777e1fd3de972"} device_1 | {"level":"info","message":"device 'http://localhost/devices/853c5592-d1fb-4237-b398-4db02934e8a9' connected"} device_1 | {"level":"info","message":"device 'http://localhost/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk2fQ.NK0wy4zkRZHFp1UyoPlWSOyOOtDJJtekHO-GAuPQ5dk","level":"info","message":"auth send jwt","requestID":"393dc6a25024f6a1f6a724ee32f08b6b"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"393dc6a25024f6a1f6a724ee32f08b6b","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:56Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.820842,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:56Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/853c5592-d1fb-4237-b398-4db02934e8a9","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/853c5592-d1fb-4237-b398-4db02934e8a9","object_type":"device","payload":{"admin":true,"iat":1701705896,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk2fQ.NK0wy4zkRZHFp1UyoPlWSOyOOtDJJtekHO-GAuPQ5dk"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:04:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/853c5592-d1fb-4237-b398-4db02934e8a9? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"393dc6a25024f6a1f6a724ee32f08b6b"} device_1 | {"level":"info","message":"GET /devices/853c5592-d1fb-4237-b398-4db02934e8a9? 200 12ms","method":"GET","requestID":"393dc6a25024f6a1f6a724ee32f08b6b","responseTime":12,"status":200,"url":"/devices/853c5592-d1fb-4237-b398-4db02934e8a9?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk2fQ.NK0wy4zkRZHFp1UyoPlWSOyOOtDJJtekHO-GAuPQ5dk","level":"info","message":"auth send jwt","requestID":"b00bf8b6281db4d8f7f5c803efbeb797"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b00bf8b6281db4d8f7f5c803efbeb797","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:56Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.15032,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:56Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927","object_type":"device","payload":{"admin":true,"iat":1701705896,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk2fQ.NK0wy4zkRZHFp1UyoPlWSOyOOtDJJtekHO-GAuPQ5dk"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927? 200 11ms","method":"GET","requestID":"b00bf8b6281db4d8f7f5c803efbeb797","responseTime":11,"status":200,"url":"/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b00bf8b6281db4d8f7f5c803efbeb797"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk2fQ.NK0wy4zkRZHFp1UyoPlWSOyOOtDJJtekHO-GAuPQ5dk","level":"info","message":"auth send jwt","requestID":"263b60cb1d6b127de00bb334a4c2f3b0"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"263b60cb1d6b127de00bb334a4c2f3b0","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:54572","level":"info","msg":"Received request.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:56Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.351718,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:56Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705896,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk2fQ.NK0wy4zkRZHFp1UyoPlWSOyOOtDJJtekHO-GAuPQ5dk"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"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:54572","level":"info","msg":"Received request.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:56Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.562855,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:56Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/853c5592-d1fb-4237-b398-4db02934e8a9","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/853c5592-d1fb-4237-b398-4db02934e8a9","object_type":"device","payload":{"admin":true,"iat":1701705896,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk2fQ.NK0wy4zkRZHFp1UyoPlWSOyOOtDJJtekHO-GAuPQ5dk"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:56992","level":"info","msg":"Received request.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:56Z"} authorization_1 | {"client_addr":"127.0.0.1:56992","level":"info","msg":"Sent response.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.93177,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:56Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927","object_type":"device","payload":{"admin":true,"iat":1701705896,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk2fQ.NK0wy4zkRZHFp1UyoPlWSOyOOtDJJtekHO-GAuPQ5dk"} device_1 | {"level":"info","message":"GET /devices/853c5592-d1fb-4237-b398-4db02934e8a9? 200 14ms","method":"GET","requestID":"de6d9870-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/853c5592-d1fb-4237-b398-4db02934e8a9?"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927? 200 15ms","method":"GET","requestID":"de6de690-92be-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"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:54572","level":"info","msg":"Received request.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:57Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.828575,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:57Z"} authorization_1 | {"client_addr":"127.0.0.1:56992","level":"info","msg":"Received request.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:57Z"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/853c5592-d1fb-4237-b398-4db02934e8a9","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/853c5592-d1fb-4237-b398-4db02934e8a9","object_type":"device","payload":{"admin":true,"iat":1701705896,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk2fQ.NK0wy4zkRZHFp1UyoPlWSOyOOtDJJtekHO-GAuPQ5dk"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"client_addr":"127.0.0.1:56992","level":"info","msg":"Sent response.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.741605,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:57Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927","object_type":"device","payload":{"admin":true,"iat":1701705896,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk2fQ.NK0wy4zkRZHFp1UyoPlWSOyOOtDJJtekHO-GAuPQ5dk"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/853c5592-d1fb-4237-b398-4db02934e8a9? 200 13ms","method":"GET","requestID":"deaaa170-92be-11ee-b645-7f04f10d7150","responseTime":13,"status":200,"url":"/devices/853c5592-d1fb-4237-b398-4db02934e8a9?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927? 200 12ms","method":"GET","requestID":"deaaef90-92be-11ee-b645-7f04f10d7150","responseTime":12,"status":200,"url":"/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"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":"8d2425f4-cc94-448c-9851-c1b652c473e7"},{"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":"8e00d325-aabc-4567-aac4-5e560fab5a11"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"3725a0af-0ab9-4db2-ace7-cc28575dcc42"}]},"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/568e0eae-ae03-4d7b-8ab6-83f69d5a8927"},{"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/853c5592-d1fb-4237-b398-4db02934e8a9"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:57Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.730456,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:57Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705896,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk2fQ.NK0wy4zkRZHFp1UyoPlWSOyOOtDJJtekHO-GAuPQ5dk"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd94443f9-84b7-473f-bce8-2ed3d37760ba#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd94443f9-84b7-473f-bce8-2ed3d37760ba","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"01a33f74-4811-48c7-96b4-de9a1396f06c","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705897.3596327} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a687eaff-e3c8-4d58-9301-b33507956a2e","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705897.359906} authorization_1 | {"level":"info","message":"POST /relations/update 200 131ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":131}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"68dc5a20-edf9-4e43-82ff-b0314900554c","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705897.3615825} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"678fedd4-3413-487d-82f9-968eaa4ea5a8","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705897.3618834} authorization_1 | {"level":"info","message":"POST /relations/update 200 116ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":116}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 811ms","method":"POST","requestID":"263b60cb1d6b127de00bb334a4c2f3b0","responseTime":811,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:04:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.819","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"263b60cb1d6b127de00bb334a4c2f3b0"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk3fQ.4LuNhtcuaJPlo12qQTj-_UfA9_LRUMtUWEVFJIVLmXs","level":"info","message":"auth send jwt","requestID":"09d8cabc9febb7928157dba6a4369f70"} authentication_1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"09d8cabc9febb7928157dba6a4369f70","responseTime":2,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:57Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.761802,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:57Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/853c5592-d1fb-4237-b398-4db02934e8a9","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/853c5592-d1fb-4237-b398-4db02934e8a9","object_type":"device","payload":{"admin":true,"iat":1701705897,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk3fQ.4LuNhtcuaJPlo12qQTj-_UfA9_LRUMtUWEVFJIVLmXs"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f'"} 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 257ms","method":"POST","requestID":"dead1270-92be-11ee-b645-7f04f10d7150","responseTime":257,"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":"04/Dec/2023:16:04:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/853c5592-d1fb-4237-b398-4db02934e8a9? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.123","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"09d8cabc9febb7928157dba6a4369f70"} device_1 | {"level":"info","message":"GET /devices/853c5592-d1fb-4237-b398-4db02934e8a9? 200 119ms","method":"GET","requestID":"09d8cabc9febb7928157dba6a4369f70","responseTime":119,"status":200,"url":"/devices/853c5592-d1fb-4237-b398-4db02934e8a9?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk3fQ.4LuNhtcuaJPlo12qQTj-_UfA9_LRUMtUWEVFJIVLmXs","level":"info","message":"auth send jwt","requestID":"a1190d42c5d701f26db90b4350dc6e67"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a1190d42c5d701f26db90b4350dc6e67","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:57Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":2.128863,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:57Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927","object_type":"device","payload":{"admin":true,"iat":1701705897,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk3fQ.4LuNhtcuaJPlo12qQTj-_UfA9_LRUMtUWEVFJIVLmXs"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:04:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a1190d42c5d701f26db90b4350dc6e67"} device_1 | {"level":"info","message":"GET /devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927? 200 11ms","method":"GET","requestID":"a1190d42c5d701f26db90b4350dc6e67","responseTime":11,"status":200,"url":"/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927?"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"3e43ab62-c0c3-4a8c-80bd-32f51dd7235f","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"05ff036f13a19717c07b496d5ef4ea79","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"05ff036f13a19717c07b496d5ef4ea79","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/568e0eae-ae03-4d7b-8ab6-83f69d5a8927"},{"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/853c5592-d1fb-4237-b398-4db02934e8a9"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f"}}},"level":"info","message":"received a callback"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"level":"info","message":"Successfully created peerconnections for experiment"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 108ms","method":"POST","requestID":"05ff036f13a19717c07b496d5ef4ea79","responseTime":108,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:04: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.112","http_referrer":"","http_user_agent":"node-fetch","requestID":"05ff036f13a19717c07b496d5ef4ea79"} device_1 | {"data":{"peerconnection":"3e43ab62-c0c3-4a8c-80bd-32f51dd7235f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk3fQ.4LuNhtcuaJPlo12qQTj-_UfA9_LRUMtUWEVFJIVLmXs","level":"info","message":"auth send jwt","requestID":"3e55e13ab035d0d2736985fca88a5d43"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3e55e13ab035d0d2736985fca88a5d43","responseTime":5,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:57Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":1.050978,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:57Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba","object_type":"experiment","payload":{"admin":true,"iat":1701705897,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk3fQ.4LuNhtcuaJPlo12qQTj-_UfA9_LRUMtUWEVFJIVLmXs"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:57Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":1.164908,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:57Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f","object_type":"peerconnection","payload":{"admin":true,"iat":1701705897,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk3fQ.4LuNhtcuaJPlo12qQTj-_UfA9_LRUMtUWEVFJIVLmXs"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"peerconnection":"3e43ab62-c0c3-4a8c-80bd-32f51dd7235f","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3e43ab62-c0c3-4a8c-80bd-32f51dd7235f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3e43ab62-c0c3-4a8c-80bd-32f51dd7235f","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"0ac170ff-6493-4196-883f-bc0eac14ae16","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705898.0316234} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a792fa06-c9b8-437c-b46f-2bf4beb9e8ab","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705898.0318098} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"3e43ab62-c0c3-4a8c-80bd-32f51dd7235f","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"d8dbf4b4eadb46b37dc730a7fbfb9baa","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"d8dbf4b4eadb46b37dc730a7fbfb9baa","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/568e0eae-ae03-4d7b-8ab6-83f69d5a8927"},{"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/853c5592-d1fb-4237-b398-4db02934e8a9"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f"}}},"level":"info","message":"received a callback"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927'"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f 204 383ms","method":"DELETE","requestID":"df1438b0-92be-11ee-b645-7f04f10d7150","responseTime":383,"status":204,"url":"/peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f"} device_1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/853c5592-d1fb-4237-b398-4db02934e8a9'"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:58Z"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","contextual_tuples":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3e43ab62-c0c3-4a8c-80bd-32f51dd7235f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7a589497-04f8-4d84-9548-b9fa07bffdd4","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705898.303473} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.622429,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:58Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f","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"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"error":"MissingEntityError","message":"The requested Peerconnection does not exist in the database","method":"GET","stack":"MissingEntityError: The requested Peerconnection does not exist in the database\n at PeerconnectionRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async Object.getPeerconnectionsByPeerconnectionId (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/peerconnections/peerconnection/get.js:13:33)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:351:28","status":404,"url":"/peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f"},"level":"error","message":"An error occurred during the handling of a request","requestID":"df4ed0b0-92be-11ee-b645-7f04f10d7150"} device_1 | {"level":"info","message":"GET /peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f 404 9ms","method":"GET","requestID":"df4ed0b0-92be-11ee-b645-7f04f10d7150","responseTime":9,"status":404,"url":"/peerconnections/3e43ab62-c0c3-4a8c-80bd-32f51dd7235f"} experiment_1 | {"data":{"error":"UnsuccessfulRequestError","message":"Server returned response with status 404","method":"POST","stack":"UnsuccessfulRequestError: Server returned response with status 404\n at Client.getPeerconnection (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/clients/device/client.js:870:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async handlePeerconnectionStatusChangedEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/peerconnectionStatusChanged.js:41:22)\n at async handleEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/index.js:20:20)\n at async file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/index.js:20:39","status":500,"url":"/callbacks/experiment"},"level":"error","message":"An error occurred during the handling of a request","requestID":"d8dbf4b4eadb46b37dc730a7fbfb9baa"} gateway_1 | {"time_local":"04/Dec/2023:16:04:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "500","body_bytes_sent":"89","request_time":"0.144","http_referrer":"","http_user_agent":"node-fetch","requestID":"d8dbf4b4eadb46b37dc730a7fbfb9baa"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 500 139ms","method":"POST","requestID":"d8dbf4b4eadb46b37dc730a7fbfb9baa","responseTime":139,"status":500,"url":"/callbacks/experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd94443f9-84b7-473f-bce8-2ed3d37760ba': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd94443f9-84b7-473f-bce8-2ed3d37760ba","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"911ffe8c-57a4-4e10-b160-4b5ef438a339","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705898.5626762} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4c763f81-4fb1-4104-a575-5c68536853a5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705898.5630705} authorization_1 | {"level":"info","message":"POST /relations/update 200 125ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":125}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"} gateway_1 | {"time_local":"04/Dec/2023:16:04:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.377","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3e55e13ab035d0d2736985fca88a5d43"} experiment_1 | {"level":"info","message":"DELETE /experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba 204 1371ms","method":"DELETE","requestID":"3e55e13ab035d0d2736985fca88a5d43","responseTime":1371,"status":204,"url":"/experiments/d94443f9-84b7-473f-bce8-2ed3d37760ba"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk5fQ.ujTsh6S51BRKh3AMn-HNM6Dx3k0M6bE9RqOpby9sDYs","level":"info","message":"auth send jwt","requestID":"9e036674452bad7df3cf73eb0a81cf9b"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9e036674452bad7df3cf73eb0a81cf9b","responseTime":4,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:04:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1590","request_time":"3.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":"3f51b9fcf8077dcc2b92b4cb0f983fa2"} device_1 | {"level":"info","message":"postDevices called"} gateway_1 | {"time_local":"04/Dec/2023:16:04:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1592","request_time":"3.159","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"984c098cf100011ed3d527da5aaf35d6"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:59Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.032356,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:59Z"} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/568e0eae-ae03-4d7b-8ab6-83f69d5a8927' closed"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705899,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk5fQ.ujTsh6S51BRKh3AMn-HNM6Dx3k0M6bE9RqOpby9sDYs"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"b239196b-f3eb-4fd3-98eb-470a2fec013a","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705899.2972243} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fa5dcf82-c10c-4fd9-ac67-381641287946","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705899.2973146} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/853c5592-d1fb-4237-b398-4db02934e8a9' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 246ms","method":"POST","requestID":"9e036674452bad7df3cf73eb0a81cf9b","responseTime":246,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.258","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9e036674452bad7df3cf73eb0a81cf9b"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk5fQ.ujTsh6S51BRKh3AMn-HNM6Dx3k0M6bE9RqOpby9sDYs","level":"info","message":"auth send jwt","requestID":"7ba9639b1594ffc63aac494431e1d928"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7ba9639b1594ffc63aac494431e1d928","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:04:59Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.255597,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:04:59Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705899,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1ODk5fQ.ujTsh6S51BRKh3AMn-HNM6Dx3k0M6bE9RqOpby9sDYs"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"ee4f2b3e-4dc6-4500-a4cf-802a03b6facd","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705899.5548787} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8899b73f-7107-45b1-9473-bfe11a6e88a1","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705899.5549803} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 140ms","method":"POST","requestID":"7ba9639b1594ffc63aac494431e1d928","responseTime":140,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:04:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.177","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7ba9639b1594ffc63aac494431e1d928"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"091994fc287f1ad9b5e1bef1d7e94059","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"091994fc287f1ad9b5e1bef1d7e94059","responseTime":1,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:05:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4/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":"091994fc287f1ad9b5e1bef1d7e94059"} device_1 | {"level":"info","message":"OPTIONS /devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4/websocket 200 1ms","method":"OPTIONS","requestID":"091994fc287f1ad9b5e1bef1d7e94059","responseTime":1,"status":200,"url":"/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAxfQ.PU-LSRKjAlDM8RHZLRHuodMwouR1dRrPrzE_WI_bMOI","level":"info","message":"auth send jwt","requestID":"3571a73a80dfbbd27cdfccd336d2a948"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3571a73a80dfbbd27cdfccd336d2a948","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"f696a2897247acb681cf50973b8d6920","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"f696a2897247acb681cf50973b8d6920","responseTime":1,"status":200,"url":"/auth"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:01Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.360747,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:01Z"} gateway_1 | {"time_local":"04/Dec/2023:16:05:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/c1f59fee-9e35-4087-bdce-ed360bde9637/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":"f696a2897247acb681cf50973b8d6920"} device_1 | {"level":"info","message":"OPTIONS /devices/c1f59fee-9e35-4087-bdce-ed360bde9637/websocket 200 1ms","method":"OPTIONS","requestID":"f696a2897247acb681cf50973b8d6920","responseTime":1,"status":200,"url":"/devices/c1f59fee-9e35-4087-bdce-ed360bde9637/websocket"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4","object_type":"device","payload":{"admin":true,"iat":1701705901,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAxfQ.PU-LSRKjAlDM8RHZLRHuodMwouR1dRrPrzE_WI_bMOI"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAxfQ.PU-LSRKjAlDM8RHZLRHuodMwouR1dRrPrzE_WI_bMOI","level":"info","message":"auth send jwt","requestID":"4be00d8a8f2766d82c28049a06827d2b"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4be00d8a8f2766d82c28049a06827d2b","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:01Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.081393,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:01Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1f59fee-9e35-4087-bdce-ed360bde9637","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c1f59fee-9e35-4087-bdce-ed360bde9637","object_type":"device","payload":{"admin":true,"iat":1701705901,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAxfQ.PU-LSRKjAlDM8RHZLRHuodMwouR1dRrPrzE_WI_bMOI"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.259","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3571a73a80dfbbd27cdfccd336d2a948"} device_1 | {"level":"info","message":"POST /devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4/websocket 200 253ms","method":"POST","requestID":"3571a73a80dfbbd27cdfccd336d2a948","responseTime":253,"status":200,"url":"/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4/websocket"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c1f59fee-9e35-4087-bdce-ed360bde9637/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.404","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4be00d8a8f2766d82c28049a06827d2b"} device_1 | {"level":"info","message":"POST /devices/c1f59fee-9e35-4087-bdce-ed360bde9637/websocket 200 398ms","method":"POST","requestID":"4be00d8a8f2766d82c28049a06827d2b","responseTime":398,"status":200,"url":"/devices/c1f59fee-9e35-4087-bdce-ed360bde9637/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4' connected"} device_1 | {"level":"info","message":"device 'http://localhost/devices/c1f59fee-9e35-4087-bdce-ed360bde9637' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAyfQ.8ClT7pvkTpzDSToj76wfee55BRNsgnQp3Hio8gm43KI","level":"info","message":"auth send jwt","requestID":"cac8111dd506fc5f886be49c2a9d43cd"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cac8111dd506fc5f886be49c2a9d43cd","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:02Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.044201,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:02Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4","object_type":"device","payload":{"admin":true,"iat":1701705902,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAyfQ.8ClT7pvkTpzDSToj76wfee55BRNsgnQp3Hio8gm43KI"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4? 200 12ms","method":"GET","requestID":"cac8111dd506fc5f886be49c2a9d43cd","responseTime":12,"status":200,"url":"/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cac8111dd506fc5f886be49c2a9d43cd"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAyfQ.8ClT7pvkTpzDSToj76wfee55BRNsgnQp3Hio8gm43KI","level":"info","message":"auth send jwt","requestID":"73482a5c2ae4928d456f110a806a0570"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"73482a5c2ae4928d456f110a806a0570","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:02Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.937204,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:02Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1f59fee-9e35-4087-bdce-ed360bde9637","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c1f59fee-9e35-4087-bdce-ed360bde9637","object_type":"device","payload":{"admin":true,"iat":1701705902,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAyfQ.8ClT7pvkTpzDSToj76wfee55BRNsgnQp3Hio8gm43KI"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c1f59fee-9e35-4087-bdce-ed360bde9637? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"73482a5c2ae4928d456f110a806a0570"} device_1 | {"level":"info","message":"GET /devices/c1f59fee-9e35-4087-bdce-ed360bde9637? 200 10ms","method":"GET","requestID":"73482a5c2ae4928d456f110a806a0570","responseTime":10,"status":200,"url":"/devices/c1f59fee-9e35-4087-bdce-ed360bde9637?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAyfQ.8ClT7pvkTpzDSToj76wfee55BRNsgnQp3Hio8gm43KI","level":"info","message":"auth send jwt","requestID":"dc6df7614b14c2da81e3708c944c4590"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"dc6df7614b14c2da81e3708c944c4590","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:54572","level":"info","msg":"Received request.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:02Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.284495,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:02Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705902,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAyfQ.8ClT7pvkTpzDSToj76wfee55BRNsgnQp3Hio8gm43KI"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"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:54572","level":"info","msg":"Received request.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:02Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.080971,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:02Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4","object_type":"device","payload":{"admin":true,"iat":1701705902,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAyfQ.8ClT7pvkTpzDSToj76wfee55BRNsgnQp3Hio8gm43KI"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:57008","level":"info","msg":"Received request.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:02Z"} authorization_1 | {"client_addr":"127.0.0.1:57008","level":"info","msg":"Sent response.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.430394,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:02Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1f59fee-9e35-4087-bdce-ed360bde9637","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c1f59fee-9e35-4087-bdce-ed360bde9637","object_type":"device","payload":{"admin":true,"iat":1701705902,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAyfQ.8ClT7pvkTpzDSToj76wfee55BRNsgnQp3Hio8gm43KI"} device_1 | {"level":"info","message":"GET /devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4? 200 14ms","method":"GET","requestID":"e1e0ed40-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4?"} authorization_1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/c1f59fee-9e35-4087-bdce-ed360bde9637? 200 17ms","method":"GET","requestID":"e1e13b60-92be-11ee-b645-7f04f10d7150","responseTime":17,"status":200,"url":"/devices/c1f59fee-9e35-4087-bdce-ed360bde9637?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"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/c76fdc5b-833a-49b8-a542-c17e847c2862"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.135587,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"client_addr":"127.0.0.1:57008","level":"info","msg":"Received request.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4","object_type":"device","payload":{"admin":true,"iat":1701705902,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAyfQ.8ClT7pvkTpzDSToj76wfee55BRNsgnQp3Hio8gm43KI"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"client_addr":"127.0.0.1:57008","level":"info","msg":"Sent response.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.817993,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1f59fee-9e35-4087-bdce-ed360bde9637","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c1f59fee-9e35-4087-bdce-ed360bde9637","object_type":"device","payload":{"admin":true,"iat":1701705902,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAyfQ.8ClT7pvkTpzDSToj76wfee55BRNsgnQp3Hio8gm43KI"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4? 200 16ms","method":"GET","requestID":"e21d8110-92be-11ee-b645-7f04f10d7150","responseTime":16,"status":200,"url":"/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/c1f59fee-9e35-4087-bdce-ed360bde9637? 200 14ms","method":"GET","requestID":"e21dcf30-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/c1f59fee-9e35-4087-bdce-ed360bde9637?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"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":"6763dfe9-16ba-4773-9f5a-2e30c7f3b030"},{"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":"857ec22a-faf6-4508-bd8f-2894b97ea4c7"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"bf743a44-b0cd-43ca-baad-285e49905f6d"}]},"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/b06bb4cb-86c5-4d97-a84a-68924c334cd4"},{"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/c1f59fee-9e35-4087-bdce-ed360bde9637"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":1.342999,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705902,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAyfQ.8ClT7pvkTpzDSToj76wfee55BRNsgnQp3Hio8gm43KI"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc76fdc5b-833a-49b8-a542-c17e847c2862#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc76fdc5b-833a-49b8-a542-c17e847c2862","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"0919e384-b1e5-4af8-a0d0-d4eb13adc34d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705903.1662543} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ce7240f1-543f-4aa9-a9e4-954c0a71f4b5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705903.1667724} authorization_1 | {"level":"info","message":"POST /relations/update 200 152ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":152}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"6ac209b5-ab39-4530-bd26-3b0e01fee21b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705903.1694176} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c4197a96-b5dd-483d-aa8c-c6cc65185da3","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705903.1700559} authorization_1 | {"level":"info","message":"POST /relations/update 200 137ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":137}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 819ms","method":"POST","requestID":"dc6df7614b14c2da81e3708c944c4590","responseTime":819,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:05:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.825","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dc6df7614b14c2da81e3708c944c4590"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAzfQ.HE2llK3ELO5cNrTNgpmtMKdwscAGHSxapQ4rLr1zE_M","level":"info","message":"auth send jwt","requestID":"a05780e1f65f3ce8b63749bee510c561"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a05780e1f65f3ce8b63749bee510c561","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.742302,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4","object_type":"device","payload":{"admin":true,"iat":1701705903,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAzfQ.HE2llK3ELO5cNrTNgpmtMKdwscAGHSxapQ4rLr1zE_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":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b'"} 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 282ms","method":"POST","requestID":"e2206740-92be-11ee-b645-7f04f10d7150","responseTime":282,"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":"04/Dec/2023:16:05:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.129","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a05780e1f65f3ce8b63749bee510c561"} device_1 | {"level":"info","message":"GET /devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4? 200 125ms","method":"GET","requestID":"a05780e1f65f3ce8b63749bee510c561","responseTime":125,"status":200,"url":"/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAzfQ.HE2llK3ELO5cNrTNgpmtMKdwscAGHSxapQ4rLr1zE_M","level":"info","message":"auth send jwt","requestID":"08293a65beb8d7882ac3051a037c6a89"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"08293a65beb8d7882ac3051a037c6a89","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.856405,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c1f59fee-9e35-4087-bdce-ed360bde9637","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c1f59fee-9e35-4087-bdce-ed360bde9637","object_type":"device","payload":{"admin":true,"iat":1701705903,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAzfQ.HE2llK3ELO5cNrTNgpmtMKdwscAGHSxapQ4rLr1zE_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":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c1f59fee-9e35-4087-bdce-ed360bde9637? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"08293a65beb8d7882ac3051a037c6a89"} device_1 | {"level":"info","message":"GET /devices/c1f59fee-9e35-4087-bdce-ed360bde9637? 200 9ms","method":"GET","requestID":"08293a65beb8d7882ac3051a037c6a89","responseTime":9,"status":200,"url":"/devices/c1f59fee-9e35-4087-bdce-ed360bde9637?"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"9e06d950-7ded-47a2-bfc3-885aa7f6b79b","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"31a3b3f735f01b1dbabb5be615410fdd","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"31a3b3f735f01b1dbabb5be615410fdd","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/b06bb4cb-86c5-4d97-a84a-68924c334cd4"},{"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/c1f59fee-9e35-4087-bdce-ed360bde9637"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b"}}},"level":"info","message":"received a callback"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"level":"info","message":"Successfully created peerconnections for experiment"} device_1 | {"data":{"peerconnection":"9e06d950-7ded-47a2-bfc3-885aa7f6b79b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 137ms","method":"POST","requestID":"31a3b3f735f01b1dbabb5be615410fdd","responseTime":137,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:05:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.141","http_referrer":"","http_user_agent":"node-fetch","requestID":"31a3b3f735f01b1dbabb5be615410fdd"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAzfQ.HE2llK3ELO5cNrTNgpmtMKdwscAGHSxapQ4rLr1zE_M","level":"info","message":"auth send jwt","requestID":"ee8db649094b3a7d6f2276ad478fc8f2"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ee8db649094b3a7d6f2276ad478fc8f2","responseTime":3,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":0.630817,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862","object_type":"experiment","payload":{"admin":true,"iat":1701705903,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAzfQ.HE2llK3ELO5cNrTNgpmtMKdwscAGHSxapQ4rLr1zE_M"} authorization_1 | {"level":"info","message":"POST /authorize 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":0.88103,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b","object_type":"peerconnection","payload":{"admin":true,"iat":1701705903,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTAzfQ.HE2llK3ELO5cNrTNgpmtMKdwscAGHSxapQ4rLr1zE_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":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"data":{"peerconnection":"9e06d950-7ded-47a2-bfc3-885aa7f6b79b","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9e06d950-7ded-47a2-bfc3-885aa7f6b79b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9e06d950-7ded-47a2-bfc3-885aa7f6b79b","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"57c17b5f-903e-4afe-a346-d08a0426e6e4","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705903.80363} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"179a35eb-6d9c-4425-bba8-08fd9c4ae33b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705903.8038483} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"9e06d950-7ded-47a2-bfc3-885aa7f6b79b","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"046057b165bbdc2c5519203a36905a6e","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"046057b165bbdc2c5519203a36905a6e","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/b06bb4cb-86c5-4d97-a84a-68924c334cd4"},{"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/c1f59fee-9e35-4087-bdce-ed360bde9637"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b"}}},"level":"info","message":"received a callback"} device_1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","contextual_tuples":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9e06d950-7ded-47a2-bfc3-885aa7f6b79b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8b0cd2d9-b36f-4610-bb09-25b449271a5c","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705903.929959} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.712988,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:03Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b","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"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b 204 369ms","method":"DELETE","requestID":"e2848040-92be-11ee-b645-7f04f10d7150","responseTime":369,"status":204,"url":"/peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/b06bb4cb-86c5-4d97-a84a-68924c334cd4'"} device_1 | {"data":{"error":"MissingEntityError","message":"The requested Peerconnection does not exist in the database","method":"GET","stack":"MissingEntityError: The requested Peerconnection does not exist in the database\n at PeerconnectionRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async Object.getPeerconnectionsByPeerconnectionId (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/peerconnections/peerconnection/get.js:13:33)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:351:28","status":404,"url":"/peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b"},"level":"error","message":"An error occurred during the handling of a request","requestID":"e2a91f40-92be-11ee-b645-7f04f10d7150"} device_1 | {"level":"info","message":"GET /peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b 404 131ms","method":"GET","requestID":"e2a91f40-92be-11ee-b645-7f04f10d7150","responseTime":131,"status":404,"url":"/peerconnections/9e06d950-7ded-47a2-bfc3-885aa7f6b79b"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/c1f59fee-9e35-4087-bdce-ed360bde9637'"} experiment_1 | {"data":{"error":"UnsuccessfulRequestError","message":"Server returned response with status 404","method":"POST","stack":"UnsuccessfulRequestError: Server returned response with status 404\n at Client.getPeerconnection (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/clients/device/client.js:870:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async handlePeerconnectionStatusChangedEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/peerconnectionStatusChanged.js:41:22)\n at async handleEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/index.js:20:20)\n at async file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/index.js:20:39","status":500,"url":"/callbacks/experiment"},"level":"error","message":"An error occurred during the handling of a request","requestID":"046057b165bbdc2c5519203a36905a6e"} gateway_1 | {"time_local":"04/Dec/2023:16:05:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "500","body_bytes_sent":"89","request_time":"0.146","http_referrer":"","http_user_agent":"node-fetch","requestID":"046057b165bbdc2c5519203a36905a6e"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 500 142ms","method":"POST","requestID":"046057b165bbdc2c5519203a36905a6e","responseTime":142,"status":500,"url":"/callbacks/experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc76fdc5b-833a-49b8-a542-c17e847c2862': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc76fdc5b-833a-49b8-a542-c17e847c2862","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"7d1c8386-aca5-4c65-9e28-0b6d8d3012ba","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705904.3317058} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f31a77b9-b50c-4f51-9d4c-954ee124e261","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705904.3321056} authorization_1 | {"level":"info","message":"POST /relations/update 200 122ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":122}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"} gateway_1 | {"time_local":"04/Dec/2023:16:05:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c76fdc5b-833a-49b8-a542-c17e847c2862 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.338","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ee8db649094b3a7d6f2276ad478fc8f2"} experiment_1 | {"level":"info","message":"DELETE /experiments/c76fdc5b-833a-49b8-a542-c17e847c2862 204 1335ms","method":"DELETE","requestID":"ee8db649094b3a7d6f2276ad478fc8f2","responseTime":1335,"status":204,"url":"/experiments/c76fdc5b-833a-49b8-a542-c17e847c2862"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA1fQ.kfJEP22d1nWnAsvlnVAcSexGAykRhqA-A1qbpMOm5Fs","level":"info","message":"auth send jwt","requestID":"77cf16442879e6209d7dbcc84c3ab278"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"77cf16442879e6209d7dbcc84c3ab278","responseTime":4,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:05:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1592","request_time":"3.145","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"da511c44cdc9373fedf3d94c8e51df90"} gateway_1 | {"time_local":"04/Dec/2023:16:05:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1589","request_time":"2.987","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b0336ca073e8c0085234aefffaa72213"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:05Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.914943,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:05Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705905,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA1fQ.kfJEP22d1nWnAsvlnVAcSexGAykRhqA-A1qbpMOm5Fs"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/c1f59fee-9e35-4087-bdce-ed360bde9637' closed"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"e6c2c70e-c920-41f8-82cb-f62a3294cede","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705905.0321581} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2331d60e-bacf-486c-b26e-86a564b41dc3","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705905.0323966} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/b06bb4cb-86c5-4d97-a84a-68924c334cd4' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 275ms","method":"POST","requestID":"77cf16442879e6209d7dbcc84c3ab278","responseTime":275,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.283","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"77cf16442879e6209d7dbcc84c3ab278"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA1fQ.kfJEP22d1nWnAsvlnVAcSexGAykRhqA-A1qbpMOm5Fs","level":"info","message":"auth send jwt","requestID":"4c577299a70423d962194cb3ed81e644"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4c577299a70423d962194cb3ed81e644","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:05Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.112956,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:05Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705905,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA1fQ.kfJEP22d1nWnAsvlnVAcSexGAykRhqA-A1qbpMOm5Fs"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"a0f98e3f-e919-494a-b7a4-7a9ab8d6504c","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705905.3179429} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3f1e1077-af16-4972-a9a2-38c6de0a7e63","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705905.3184097} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 132ms","method":"POST","requestID":"4c577299a70423d962194cb3ed81e644","responseTime":132,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.169","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4c577299a70423d962194cb3ed81e644"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA1fQ.kfJEP22d1nWnAsvlnVAcSexGAykRhqA-A1qbpMOm5Fs","level":"info","message":"auth send jwt","requestID":"d95480427f204e60f8a4bf6755b35756"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d95480427f204e60f8a4bf6755b35756","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:05Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.821802,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:05Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8","object_type":"device","payload":{"admin":true,"iat":1701705905,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA1fQ.kfJEP22d1nWnAsvlnVAcSexGAykRhqA-A1qbpMOm5Fs"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/97978c6f-9b19-4eef-96e7-ebab803d07b8 HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.129","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"d95480427f204e60f8a4bf6755b35756"} device_1 | {"level":"info","message":"PATCH /devices/97978c6f-9b19-4eef-96e7-ebab803d07b8 200 124ms","method":"PATCH","requestID":"d95480427f204e60f8a4bf6755b35756","responseTime":124,"status":200,"url":"/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA2fQ.BsxNgLiyFf6rxSuAm8zUIvJXeiT9LGkRl4KWrIKVDKg","level":"info","message":"auth send jwt","requestID":"8be3a1e0df32b78d98f3bc70b1a49cbf"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8be3a1e0df32b78d98f3bc70b1a49cbf","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:06Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.794783,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:06Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8","object_type":"device","payload":{"admin":true,"iat":1701705906,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA2fQ.BsxNgLiyFf6rxSuAm8zUIvJXeiT9LGkRl4KWrIKVDKg"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/97978c6f-9b19-4eef-96e7-ebab803d07b8/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.132","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"8be3a1e0df32b78d98f3bc70b1a49cbf"} device_1 | {"level":"info","message":"POST /devices/97978c6f-9b19-4eef-96e7-ebab803d07b8/websocket 200 125ms","method":"POST","requestID":"8be3a1e0df32b78d98f3bc70b1a49cbf","responseTime":125,"status":200,"url":"/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8' connected"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"386c5c0862d4dc26ce0e1fd59079578d","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"386c5c0862d4dc26ce0e1fd59079578d","responseTime":1,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:05:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/fd413e80-0abe-486c-ad6d-db455f5875b1/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":"386c5c0862d4dc26ce0e1fd59079578d"} device_1 | {"level":"info","message":"OPTIONS /devices/fd413e80-0abe-486c-ad6d-db455f5875b1/websocket 200 1ms","method":"OPTIONS","requestID":"386c5c0862d4dc26ce0e1fd59079578d","responseTime":1,"status":200,"url":"/devices/fd413e80-0abe-486c-ad6d-db455f5875b1/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA3fQ.RnM-1dvgL1J6bMxP80Sfuo0_3njSs82jyZLmvbqZY_A","level":"info","message":"auth send jwt","requestID":"7dfa1d67aebb9fb377ca3a585b88344a"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7dfa1d67aebb9fb377ca3a585b88344a","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:07Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.33764,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:07Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fd413e80-0abe-486c-ad6d-db455f5875b1","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/fd413e80-0abe-486c-ad6d-db455f5875b1","object_type":"device","payload":{"admin":true,"iat":1701705907,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA3fQ.RnM-1dvgL1J6bMxP80Sfuo0_3njSs82jyZLmvbqZY_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":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/fd413e80-0abe-486c-ad6d-db455f5875b1/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.132","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"7dfa1d67aebb9fb377ca3a585b88344a"} device_1 | {"level":"info","message":"POST /devices/fd413e80-0abe-486c-ad6d-db455f5875b1/websocket 200 128ms","method":"POST","requestID":"7dfa1d67aebb9fb377ca3a585b88344a","responseTime":128,"status":200,"url":"/devices/fd413e80-0abe-486c-ad6d-db455f5875b1/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/fd413e80-0abe-486c-ad6d-db455f5875b1' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA3fQ.RnM-1dvgL1J6bMxP80Sfuo0_3njSs82jyZLmvbqZY_A","level":"info","message":"auth send jwt","requestID":"3cbb280a0cb47f8a0f866b1407e86f71"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3cbb280a0cb47f8a0f866b1407e86f71","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:07Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.18237,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:07Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fd413e80-0abe-486c-ad6d-db455f5875b1","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/fd413e80-0abe-486c-ad6d-db455f5875b1","object_type":"device","payload":{"admin":true,"iat":1701705907,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA3fQ.RnM-1dvgL1J6bMxP80Sfuo0_3njSs82jyZLmvbqZY_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":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fd413e80-0abe-486c-ad6d-db455f5875b1? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3cbb280a0cb47f8a0f866b1407e86f71"} device_1 | {"level":"info","message":"GET /devices/fd413e80-0abe-486c-ad6d-db455f5875b1? 200 10ms","method":"GET","requestID":"3cbb280a0cb47f8a0f866b1407e86f71","responseTime":10,"status":200,"url":"/devices/fd413e80-0abe-486c-ad6d-db455f5875b1?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA3fQ.RnM-1dvgL1J6bMxP80Sfuo0_3njSs82jyZLmvbqZY_A","level":"info","message":"auth send jwt","requestID":"5fb3bf8edf2dfc59b05a8195d115561b"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5fb3bf8edf2dfc59b05a8195d115561b","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:07Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.083681,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:07Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8","object_type":"device","payload":{"admin":true,"iat":1701705907,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA3fQ.RnM-1dvgL1J6bMxP80Sfuo0_3njSs82jyZLmvbqZY_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":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/97978c6f-9b19-4eef-96e7-ebab803d07b8? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5fb3bf8edf2dfc59b05a8195d115561b"} device_1 | {"level":"info","message":"GET /devices/97978c6f-9b19-4eef-96e7-ebab803d07b8? 200 10ms","method":"GET","requestID":"5fb3bf8edf2dfc59b05a8195d115561b","responseTime":10,"status":200,"url":"/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA3fQ.RnM-1dvgL1J6bMxP80Sfuo0_3njSs82jyZLmvbqZY_A","level":"info","message":"auth send jwt","requestID":"32c5f76b1422b95113d469ca159a9653"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"32c5f76b1422b95113d469ca159a9653","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:54572","level":"info","msg":"Received request.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:07Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":0.79054,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:07Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705907,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA3fQ.RnM-1dvgL1J6bMxP80Sfuo0_3njSs82jyZLmvbqZY_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":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"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:54572","level":"info","msg":"Received request.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:07Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":2.610569,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:07Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fd413e80-0abe-486c-ad6d-db455f5875b1","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/fd413e80-0abe-486c-ad6d-db455f5875b1","object_type":"device","payload":{"admin":true,"iat":1701705907,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA3fQ.RnM-1dvgL1J6bMxP80Sfuo0_3njSs82jyZLmvbqZY_A"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization_1 | {"client_addr":"127.0.0.1:48198","level":"info","msg":"Received request.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:07Z"} authorization_1 | {"client_addr":"127.0.0.1:48198","level":"info","msg":"Sent response.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.087982,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:07Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8","object_type":"device","payload":{"admin":true,"iat":1701705907,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA3fQ.RnM-1dvgL1J6bMxP80Sfuo0_3njSs82jyZLmvbqZY_A"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"GET /devices/fd413e80-0abe-486c-ad6d-db455f5875b1? 200 15ms","method":"GET","requestID":"e50cd8d0-92be-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/fd413e80-0abe-486c-ad6d-db455f5875b1?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/97978c6f-9b19-4eef-96e7-ebab803d07b8? 200 18ms","method":"GET","requestID":"e50cffe0-92be-11ee-b645-7f04f10d7150","responseTime":18,"status":200,"url":"/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"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:54572","level":"info","msg":"Received request.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:08Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.285954,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:08Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fd413e80-0abe-486c-ad6d-db455f5875b1","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/fd413e80-0abe-486c-ad6d-db455f5875b1","object_type":"device","payload":{"admin":true,"iat":1701705907,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA3fQ.RnM-1dvgL1J6bMxP80Sfuo0_3njSs82jyZLmvbqZY_A"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"client_addr":"127.0.0.1:48198","level":"info","msg":"Received request.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:08Z"} authorization_1 | {"client_addr":"127.0.0.1:48198","level":"info","msg":"Sent response.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.060892,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:08Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8","object_type":"device","payload":{"admin":true,"iat":1701705907,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA3fQ.RnM-1dvgL1J6bMxP80Sfuo0_3njSs82jyZLmvbqZY_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":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/fd413e80-0abe-486c-ad6d-db455f5875b1? 200 14ms","method":"GET","requestID":"e5457500-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/fd413e80-0abe-486c-ad6d-db455f5875b1?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/97978c6f-9b19-4eef-96e7-ebab803d07b8? 200 14ms","method":"GET","requestID":"e545ea30-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"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":"aa46591d-634d-4c03-b077-688a1419375b"},{"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":"bbbe79c2-e592-4fdb-8452-ed11591298de"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"0571d809-179b-4051-91f3-28c83bb8111a"}]},"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/97978c6f-9b19-4eef-96e7-ebab803d07b8"},{"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/fd413e80-0abe-486c-ad6d-db455f5875b1"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:08Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.640964,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:08Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705907,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA3fQ.RnM-1dvgL1J6bMxP80Sfuo0_3njSs82jyZLmvbqZY_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":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fefaff8b1-0867-4867-86ba-239873482b7b#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fefaff8b1-0867-4867-86ba-239873482b7b","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"7744930a-2504-4678-9c7d-d17aea017ef7","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705908.4708629} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"66f3d8e2-44cb-47a0-a886-91dfba3b4ad5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705908.4712474} authorization_1 | {"level":"info","message":"POST /relations/update 200 160ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":160}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"18392000-5361-4078-8e0c-47fd9a178c13","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705908.4734273} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"38e346a9-f961-441a-ab81-e3e20ecef0d3","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705908.4737303} authorization_1 | {"level":"info","message":"POST /relations/update 200 144ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":144}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 810ms","method":"POST","requestID":"32c5f76b1422b95113d469ca159a9653","responseTime":810,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:05:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.817","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"32c5f76b1422b95113d469ca159a9653"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA4fQ.XqHGZhDKGfnCAZnOlvYS3SksWMlAExiKl8vBcGZb0Ww","level":"info","message":"auth send jwt","requestID":"e0b045cc2e83be2ab90014ba12c7b1d4"} authentication_1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e0b045cc2e83be2ab90014ba12c7b1d4","responseTime":2,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:08Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.035166,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:08Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fd413e80-0abe-486c-ad6d-db455f5875b1","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/fd413e80-0abe-486c-ad6d-db455f5875b1","object_type":"device","payload":{"admin":true,"iat":1701705908,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA4fQ.XqHGZhDKGfnCAZnOlvYS3SksWMlAExiKl8vBcGZb0Ww"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/afadaa20-4cae-4477-8614-881088addb85'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/afadaa20-4cae-4477-8614-881088addb85'"} 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 290ms","method":"POST","requestID":"e548a950-92be-11ee-b645-7f04f10d7150","responseTime":290,"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":"04/Dec/2023:16:05:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fd413e80-0abe-486c-ad6d-db455f5875b1? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.130","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e0b045cc2e83be2ab90014ba12c7b1d4"} device_1 | {"level":"info","message":"GET /devices/fd413e80-0abe-486c-ad6d-db455f5875b1? 200 127ms","method":"GET","requestID":"e0b045cc2e83be2ab90014ba12c7b1d4","responseTime":127,"status":200,"url":"/devices/fd413e80-0abe-486c-ad6d-db455f5875b1?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA4fQ.XqHGZhDKGfnCAZnOlvYS3SksWMlAExiKl8vBcGZb0Ww","level":"info","message":"auth send jwt","requestID":"1da85b3ee234e457438bef64c67b56e8"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1da85b3ee234e457438bef64c67b56e8","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:08Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.954354,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:08Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8","object_type":"device","payload":{"admin":true,"iat":1701705908,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA4fQ.XqHGZhDKGfnCAZnOlvYS3SksWMlAExiKl8vBcGZb0Ww"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/97978c6f-9b19-4eef-96e7-ebab803d07b8? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1da85b3ee234e457438bef64c67b56e8"} device_1 | {"level":"info","message":"GET /devices/97978c6f-9b19-4eef-96e7-ebab803d07b8? 200 11ms","method":"GET","requestID":"1da85b3ee234e457438bef64c67b56e8","responseTime":11,"status":200,"url":"/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8?"} device_1 | {"data":{"peerconnection":"afadaa20-4cae-4477-8614-881088addb85","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"level":"info","message":"Successfully created peerconnections for experiment"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/afadaa20-4cae-4477-8614-881088addb85' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"afadaa20-4cae-4477-8614-881088addb85","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"6db5def7141f71751f6883ccc4cd23b7","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"6db5def7141f71751f6883ccc4cd23b7","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/97978c6f-9b19-4eef-96e7-ebab803d07b8"},{"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/fd413e80-0abe-486c-ad6d-db455f5875b1"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/afadaa20-4cae-4477-8614-881088addb85"}}},"level":"info","message":"received a callback"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 3ms","method":"POST","requestID":"6db5def7141f71751f6883ccc4cd23b7","responseTime":3,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:05: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.006","http_referrer":"","http_user_agent":"node-fetch","requestID":"6db5def7141f71751f6883ccc4cd23b7"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA5fQ.h6jWzc7upgxON0IU5SzDDkSBhnnuY4JNkTWUF5HC9ZE","level":"info","message":"auth send jwt","requestID":"3d80d13b6303425d69cc5eab1194c375"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3d80d13b6303425d69cc5eab1194c375","responseTime":3,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/efaff8b1-0867-4867-86ba-239873482b7b"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:09Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":0.630377,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:09Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b","object_type":"experiment","payload":{"admin":true,"iat":1701705909,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA5fQ.h6jWzc7upgxON0IU5SzDDkSBhnnuY4JNkTWUF5HC9ZE"} authorization_1 | {"level":"info","message":"POST /authorize 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:09Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":1.014768,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:09Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/afadaa20-4cae-4477-8614-881088addb85","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/afadaa20-4cae-4477-8614-881088addb85","object_type":"peerconnection","payload":{"admin":true,"iat":1701705909,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTA5fQ.h6jWzc7upgxON0IU5SzDDkSBhnnuY4JNkTWUF5HC9ZE"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device_1 | {"data":{"peerconnection":"afadaa20-4cae-4477-8614-881088addb85","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fafadaa20-4cae-4477-8614-881088addb85': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fafadaa20-4cae-4477-8614-881088addb85","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"ba6b9cc5-b713-4a1e-80ee-d96417d6a84a","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705909.8318105} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"636add76-3da7-4bb8-8f46-12b7521a46a1","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705909.8320515} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"data":{"peerconnection":"afadaa20-4cae-4477-8614-881088addb85","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/afadaa20-4cae-4477-8614-881088addb85 204 364ms","method":"DELETE","requestID":"e61d1050-92be-11ee-b645-7f04f10d7150","responseTime":364,"status":204,"url":"/peerconnections/afadaa20-4cae-4477-8614-881088addb85"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/fd413e80-0abe-486c-ad6d-db455f5875b1'"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/efaff8b1-0867-4867-86ba-239873482b7b"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fefaff8b1-0867-4867-86ba-239873482b7b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fefaff8b1-0867-4867-86ba-239873482b7b","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"3dc4f73d-b2b5-46cf-a300-cec70dd3fbd1","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705910.3524337} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"935afd6a-97d8-45fa-b311-df65685efb4b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705910.3527749} authorization_1 | {"level":"info","message":"POST /relations/update 200 130ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":130}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/efaff8b1-0867-4867-86ba-239873482b7b"} gateway_1 | {"time_local":"04/Dec/2023:16:05:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/efaff8b1-0867-4867-86ba-239873482b7b HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.369","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3d80d13b6303425d69cc5eab1194c375"} experiment_1 | {"level":"info","message":"DELETE /experiments/efaff8b1-0867-4867-86ba-239873482b7b 204 1365ms","method":"DELETE","requestID":"3d80d13b6303425d69cc5eab1194c375","responseTime":1365,"status":204,"url":"/experiments/efaff8b1-0867-4867-86ba-239873482b7b"} gateway_1 | {"time_local":"04/Dec/2023:16:05:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1589","request_time":"4.899","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"60420701fb3099d74c0b9dcc9a3e8121"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTExfQ.C0cP1EiFfHYryX6QPr5ZqfMassArjTo28PsdssITy3Y","level":"info","message":"auth send jwt","requestID":"5a3a1926105481cb3f0f5f81d6d2ce1f"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5a3a1926105481cb3f0f5f81d6d2ce1f","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} gateway_1 | {"time_local":"04/Dec/2023:16:05:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1620","request_time":"3.581","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3b9543c72b4cc98fb263492d0cda4900"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:11Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.766081,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:11Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705911,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTExfQ.C0cP1EiFfHYryX6QPr5ZqfMassArjTo28PsdssITy3Y"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"5b68447e-8ce6-46df-b1e5-3b3b7af5d957","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705911.0973442} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"361f3c4f-52ed-40e3-ae74-8e45c24dbe78","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705911.0975506} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/97978c6f-9b19-4eef-96e7-ebab803d07b8' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 241ms","method":"POST","requestID":"5a3a1926105481cb3f0f5f81d6d2ce1f","responseTime":241,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.251","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5a3a1926105481cb3f0f5f81d6d2ce1f"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTExfQ.C0cP1EiFfHYryX6QPr5ZqfMassArjTo28PsdssITy3Y","level":"info","message":"auth send jwt","requestID":"488b6c60275d69c672346d0df09106d5"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"488b6c60275d69c672346d0df09106d5","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:11Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.144487,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:11Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705911,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTExfQ.C0cP1EiFfHYryX6QPr5ZqfMassArjTo28PsdssITy3Y"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"a70eed21-b0a9-4f97-8eb3-f5ab73a45d57","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705911.348561} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b0dd8c48-b35e-4e02-83db-c4fb95858dac","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705911.3487535} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/fd413e80-0abe-486c-ad6d-db455f5875b1' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 241ms","method":"POST","requestID":"488b6c60275d69c672346d0df09106d5","responseTime":241,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.275","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"488b6c60275d69c672346d0df09106d5"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEyfQ.ixeXm7crVKNRqS6XNA-IrxD5pGaqiQevOxstDoB482Q","level":"info","message":"auth send jwt","requestID":"03ed197d125ef58d237a4c79f5c7ccfe"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"03ed197d125ef58d237a4c79f5c7ccfe","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:12Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.892082,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:12Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c","object_type":"device","payload":{"admin":true,"iat":1701705912,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEyfQ.ixeXm7crVKNRqS6XNA-IrxD5pGaqiQevOxstDoB482Q"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.244","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"03ed197d125ef58d237a4c79f5c7ccfe"} device_1 | {"level":"info","message":"PATCH /devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c 200 239ms","method":"PATCH","requestID":"03ed197d125ef58d237a4c79f5c7ccfe","responseTime":239,"status":200,"url":"/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEyfQ.ixeXm7crVKNRqS6XNA-IrxD5pGaqiQevOxstDoB482Q","level":"info","message":"auth send jwt","requestID":"4b84888ee9ae7aadaefbc5d5f276c1e3"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4b84888ee9ae7aadaefbc5d5f276c1e3","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:12Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.789484,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:12Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c","object_type":"device","payload":{"admin":true,"iat":1701705912,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEyfQ.ixeXm7crVKNRqS6XNA-IrxD5pGaqiQevOxstDoB482Q"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.132","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"4b84888ee9ae7aadaefbc5d5f276c1e3"} device_1 | {"level":"info","message":"POST /devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c/websocket 200 125ms","method":"POST","requestID":"4b84888ee9ae7aadaefbc5d5f276c1e3","responseTime":125,"status":200,"url":"/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c' connected"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"f42f6b792205be9e5c12b3de6d6e9f8d","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"f42f6b792205be9e5c12b3de6d6e9f8d","responseTime":1,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/827d1a81-11e8-407c-8539-8b24514f8c3c/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":"f42f6b792205be9e5c12b3de6d6e9f8d"} device_1 | {"level":"info","message":"OPTIONS /devices/827d1a81-11e8-407c-8539-8b24514f8c3c/websocket 200 1ms","method":"OPTIONS","requestID":"f42f6b792205be9e5c12b3de6d6e9f8d","responseTime":1,"status":200,"url":"/devices/827d1a81-11e8-407c-8539-8b24514f8c3c/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEzfQ.dW_qkwPe-FX-r9IFLI-XkT9GIQpXfHnlM3E9LC-SGsQ","level":"info","message":"auth send jwt","requestID":"70855b3888b4a4d9a49dbd7bb63d595c"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"70855b3888b4a4d9a49dbd7bb63d595c","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:13Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.319683,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:13Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/827d1a81-11e8-407c-8539-8b24514f8c3c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/827d1a81-11e8-407c-8539-8b24514f8c3c","object_type":"device","payload":{"admin":true,"iat":1701705913,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEzfQ.dW_qkwPe-FX-r9IFLI-XkT9GIQpXfHnlM3E9LC-SGsQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/827d1a81-11e8-407c-8539-8b24514f8c3c/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.155","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"70855b3888b4a4d9a49dbd7bb63d595c"} device_1 | {"level":"info","message":"POST /devices/827d1a81-11e8-407c-8539-8b24514f8c3c/websocket 200 150ms","method":"POST","requestID":"70855b3888b4a4d9a49dbd7bb63d595c","responseTime":150,"status":200,"url":"/devices/827d1a81-11e8-407c-8539-8b24514f8c3c/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/827d1a81-11e8-407c-8539-8b24514f8c3c' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEzfQ.dW_qkwPe-FX-r9IFLI-XkT9GIQpXfHnlM3E9LC-SGsQ","level":"info","message":"auth send jwt","requestID":"371630f2769f15a4ec84137a8e69035f"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"371630f2769f15a4ec84137a8e69035f","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:13Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.799084,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:13Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/827d1a81-11e8-407c-8539-8b24514f8c3c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/827d1a81-11e8-407c-8539-8b24514f8c3c","object_type":"device","payload":{"admin":true,"iat":1701705913,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEzfQ.dW_qkwPe-FX-r9IFLI-XkT9GIQpXfHnlM3E9LC-SGsQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/827d1a81-11e8-407c-8539-8b24514f8c3c? 200 12ms","method":"GET","requestID":"371630f2769f15a4ec84137a8e69035f","responseTime":12,"status":200,"url":"/devices/827d1a81-11e8-407c-8539-8b24514f8c3c?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/827d1a81-11e8-407c-8539-8b24514f8c3c? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"371630f2769f15a4ec84137a8e69035f"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEzfQ.dW_qkwPe-FX-r9IFLI-XkT9GIQpXfHnlM3E9LC-SGsQ","level":"info","message":"auth send jwt","requestID":"4bdb08df88cdb1f97a5015ad64bbb753"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4bdb08df88cdb1f97a5015ad64bbb753","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:13Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.868965,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:13Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c","object_type":"device","payload":{"admin":true,"iat":1701705913,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEzfQ.dW_qkwPe-FX-r9IFLI-XkT9GIQpXfHnlM3E9LC-SGsQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c? 200 11ms","method":"GET","requestID":"4bdb08df88cdb1f97a5015ad64bbb753","responseTime":11,"status":200,"url":"/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4bdb08df88cdb1f97a5015ad64bbb753"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEzfQ.dW_qkwPe-FX-r9IFLI-XkT9GIQpXfHnlM3E9LC-SGsQ","level":"info","message":"auth send jwt","requestID":"bb6b805ce0472827c29ea51c161d7f47"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"bb6b805ce0472827c29ea51c161d7f47","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:54572","level":"info","msg":"Received request.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:13Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.108868,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:13Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705913,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEzfQ.dW_qkwPe-FX-r9IFLI-XkT9GIQpXfHnlM3E9LC-SGsQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"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:54572","level":"info","msg":"Received request.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:14Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.314591,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:14Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/827d1a81-11e8-407c-8539-8b24514f8c3c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/827d1a81-11e8-407c-8539-8b24514f8c3c","object_type":"device","payload":{"admin":true,"iat":1701705913,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEzfQ.dW_qkwPe-FX-r9IFLI-XkT9GIQpXfHnlM3E9LC-SGsQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization_1 | {"client_addr":"127.0.0.1:48200","level":"info","msg":"Received request.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:14Z"} authorization_1 | {"client_addr":"127.0.0.1:48200","level":"info","msg":"Sent response.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.294898,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:14Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c","object_type":"device","payload":{"admin":true,"iat":1701705913,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEzfQ.dW_qkwPe-FX-r9IFLI-XkT9GIQpXfHnlM3E9LC-SGsQ"} device_1 | {"level":"info","message":"GET /devices/827d1a81-11e8-407c-8539-8b24514f8c3c? 200 14ms","method":"GET","requestID":"e8bbb000-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/827d1a81-11e8-407c-8539-8b24514f8c3c?"} authorization_1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c? 200 17ms","method":"GET","requestID":"e8bbfe20-92be-11ee-b645-7f04f10d7150","responseTime":17,"status":200,"url":"/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"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:54572","level":"info","msg":"Received request.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:14Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.48771,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:14Z"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/827d1a81-11e8-407c-8539-8b24514f8c3c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/827d1a81-11e8-407c-8539-8b24514f8c3c","object_type":"device","payload":{"admin":true,"iat":1701705913,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEzfQ.dW_qkwPe-FX-r9IFLI-XkT9GIQpXfHnlM3E9LC-SGsQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:48200","level":"info","msg":"Received request.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:14Z"} authorization_1 | {"client_addr":"127.0.0.1:48200","level":"info","msg":"Sent response.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.875827,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:14Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c","object_type":"device","payload":{"admin":true,"iat":1701705913,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEzfQ.dW_qkwPe-FX-r9IFLI-XkT9GIQpXfHnlM3E9LC-SGsQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/827d1a81-11e8-407c-8539-8b24514f8c3c? 200 14ms","method":"GET","requestID":"e8f5d2d0-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/827d1a81-11e8-407c-8539-8b24514f8c3c?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c? 200 13ms","method":"GET","requestID":"e8f64800-92be-11ee-b645-7f04f10d7150","responseTime":13,"status":200,"url":"/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"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":"d8f38d8f-d66e-4b45-a5b0-b74550e8b77e"},{"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":"a915a50e-d89c-4e79-8f7b-5dedcc403994"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"0901203b-85f7-48fd-8c0b-c43020b7504e"}]},"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/81d1e813-767c-4d79-8c6c-a712cad1fa3c"},{"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/827d1a81-11e8-407c-8539-8b24514f8c3c"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:14Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.789699,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:14Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705913,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTEzfQ.dW_qkwPe-FX-r9IFLI-XkT9GIQpXfHnlM3E9LC-SGsQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fae43664c-f641-4233-a2e3-43c5067b3772#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fae43664c-f641-4233-a2e3-43c5067b3772","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"df46de20-f72f-4c40-8b7c-a1a623314780","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705914.6507523} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"200ae049-d010-44d1-a7c0-e30724f6e9c1","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705914.6509538} authorization_1 | {"level":"info","message":"POST /relations/update 200 149ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":149}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"5dd9b2f1-1667-4038-be27-f1c6c8e9e0d9","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705914.6527286} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a0997b10-44eb-44b1-9470-dcf31f6f10e6","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705914.6531277} authorization_1 | {"level":"info","message":"POST /relations/update 200 136ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":136}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 817ms","method":"POST","requestID":"bb6b805ce0472827c29ea51c161d7f47","responseTime":817,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:05:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.826","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bb6b805ce0472827c29ea51c161d7f47"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE0fQ.1fY0mZMZmqZOXJ6_n5nbOl2pEkaEmJ6FHJ2mIF6N9RM","level":"info","message":"auth send jwt","requestID":"5149506959f8cf3ad5761b62fda9a001"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5149506959f8cf3ad5761b62fda9a001","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:14Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.824945,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:14Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/827d1a81-11e8-407c-8539-8b24514f8c3c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/827d1a81-11e8-407c-8539-8b24514f8c3c","object_type":"device","payload":{"admin":true,"iat":1701705914,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE0fQ.1fY0mZMZmqZOXJ6_n5nbOl2pEkaEmJ6FHJ2mIF6N9RM"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/a4b39790-0689-460f-90c9-8a0612c4eee2'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a4b39790-0689-460f-90c9-8a0612c4eee2'"} 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 291ms","method":"POST","requestID":"e8f8b900-92be-11ee-b645-7f04f10d7150","responseTime":291,"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":"04/Dec/2023:16:05:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/827d1a81-11e8-407c-8539-8b24514f8c3c? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.135","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5149506959f8cf3ad5761b62fda9a001"} device_1 | {"level":"info","message":"GET /devices/827d1a81-11e8-407c-8539-8b24514f8c3c? 200 130ms","method":"GET","requestID":"5149506959f8cf3ad5761b62fda9a001","responseTime":130,"status":200,"url":"/devices/827d1a81-11e8-407c-8539-8b24514f8c3c?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE0fQ.1fY0mZMZmqZOXJ6_n5nbOl2pEkaEmJ6FHJ2mIF6N9RM","level":"info","message":"auth send jwt","requestID":"8968e41549239aec7c7401e3365261a9"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8968e41549239aec7c7401e3365261a9","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:14Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.896088,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:14Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c","object_type":"device","payload":{"admin":true,"iat":1701705914,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE0fQ.1fY0mZMZmqZOXJ6_n5nbOl2pEkaEmJ6FHJ2mIF6N9RM"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8968e41549239aec7c7401e3365261a9"} device_1 | {"level":"info","message":"GET /devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c? 200 8ms","method":"GET","requestID":"8968e41549239aec7c7401e3365261a9","responseTime":8,"status":200,"url":"/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c?"} device_1 | {"data":{"peerconnection":"a4b39790-0689-460f-90c9-8a0612c4eee2","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"level":"info","message":"Successfully created peerconnections for experiment"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a4b39790-0689-460f-90c9-8a0612c4eee2' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"a4b39790-0689-460f-90c9-8a0612c4eee2","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"de1f58ef38d383eb6b61416c6da4664a","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"de1f58ef38d383eb6b61416c6da4664a","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/81d1e813-767c-4d79-8c6c-a712cad1fa3c"},{"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/827d1a81-11e8-407c-8539-8b24514f8c3c"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a4b39790-0689-460f-90c9-8a0612c4eee2"}}},"level":"info","message":"received a callback"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"de1f58ef38d383eb6b61416c6da4664a","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:05:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"de1f58ef38d383eb6b61416c6da4664a"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE1fQ.UpBzgUZ6bhw6tTGpLiVnGALTs4rZhCBhe9Ec5Kq9tA0","level":"info","message":"auth send jwt","requestID":"c44bad08f71d10262417388958397ab6"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c44bad08f71d10262417388958397ab6","responseTime":3,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ae43664c-f641-4233-a2e3-43c5067b3772"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:15Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":0.874622,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:15Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772","object_type":"experiment","payload":{"admin":true,"iat":1701705915,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE1fQ.UpBzgUZ6bhw6tTGpLiVnGALTs4rZhCBhe9Ec5Kq9tA0"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:15Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":0.986453,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:15Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a4b39790-0689-460f-90c9-8a0612c4eee2","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/a4b39790-0689-460f-90c9-8a0612c4eee2","object_type":"peerconnection","payload":{"admin":true,"iat":1701705915,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE1fQ.UpBzgUZ6bhw6tTGpLiVnGALTs4rZhCBhe9Ec5Kq9tA0"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"data":{"peerconnection":"a4b39790-0689-460f-90c9-8a0612c4eee2","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa4b39790-0689-460f-90c9-8a0612c4eee2': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa4b39790-0689-460f-90c9-8a0612c4eee2","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"73baec09-3582-4890-8ceb-4f08f8e9b493","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705916.0362768} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ad5936f3-20dd-4407-b3c7-2ef01f7ecf36","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705916.0365252} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"data":{"peerconnection":"a4b39790-0689-460f-90c9-8a0612c4eee2","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/a4b39790-0689-460f-90c9-8a0612c4eee2 204 354ms","method":"DELETE","requestID":"e9d00630-92be-11ee-b645-7f04f10d7150","responseTime":354,"status":204,"url":"/peerconnections/a4b39790-0689-460f-90c9-8a0612c4eee2"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/827d1a81-11e8-407c-8539-8b24514f8c3c'"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fae43664c-f641-4233-a2e3-43c5067b3772': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fae43664c-f641-4233-a2e3-43c5067b3772","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"081f75ed-711f-450a-9714-5d0d6fafe5f4","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705916.5308638} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dc659401-ce7c-4d5c-a134-b959644de415","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705916.531073} authorization_1 | {"level":"info","message":"POST /relations/update 200 113ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":113}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ae43664c-f641-4233-a2e3-43c5067b3772"} gateway_1 | {"time_local":"04/Dec/2023:16:05:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ae43664c-f641-4233-a2e3-43c5067b3772 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.303","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c44bad08f71d10262417388958397ab6"} experiment_1 | {"level":"info","message":"DELETE /experiments/ae43664c-f641-4233-a2e3-43c5067b3772 204 1298ms","method":"DELETE","requestID":"c44bad08f71d10262417388958397ab6","responseTime":1298,"status":204,"url":"/experiments/ae43664c-f641-4233-a2e3-43c5067b3772"} gateway_1 | {"time_local":"04/Dec/2023:16:05:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1588","request_time":"4.798","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"ae88bd629643bea75d896ec7b4b8f12d"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE3fQ.JYH9FVkMhMWw-xjFQO-_Vq9mxy51g9acDlEog7xd7Rs","level":"info","message":"auth send jwt","requestID":"78f8303a6c47faecaed187445562d567"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"78f8303a6c47faecaed187445562d567","responseTime":4,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:05:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1620","request_time":"3.543","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0b1152e9ce9f5b492b88f3736a182ede"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:17Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.89398,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:17Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705917,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE3fQ.JYH9FVkMhMWw-xjFQO-_Vq9mxy51g9acDlEog7xd7Rs"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"5cc27011-44e9-4f74-95a4-f17fcadefa53","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705917.233762} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"92662153-918d-4291-9b7c-07282f950b39","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705917.2339468} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/81d1e813-767c-4d79-8c6c-a712cad1fa3c' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 261ms","method":"POST","requestID":"78f8303a6c47faecaed187445562d567","responseTime":261,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.269","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"78f8303a6c47faecaed187445562d567"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE3fQ.JYH9FVkMhMWw-xjFQO-_Vq9mxy51g9acDlEog7xd7Rs","level":"info","message":"auth send jwt","requestID":"00afa271abf8d21eda99b1f3725cd514"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"00afa271abf8d21eda99b1f3725cd514","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:17Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.912403,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:17Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705917,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE3fQ.JYH9FVkMhMWw-xjFQO-_Vq9mxy51g9acDlEog7xd7Rs"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"7c5a79ba-7a2e-4e17-9391-85f7fc6f85ac","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705917.5007854} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"92a9dfa3-c10a-4a89-9280-8ab0f8de6c92","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705917.5010402} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/827d1a81-11e8-407c-8539-8b24514f8c3c' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 233ms","method":"POST","requestID":"00afa271abf8d21eda99b1f3725cd514","responseTime":233,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.266","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"00afa271abf8d21eda99b1f3725cd514"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE4fQ.lm_29iTDDjhu0QjG8Yx4uCEqkHm49RV8_LgykgEQ2Lo","level":"info","message":"auth send jwt","requestID":"a885086e2db836a6b0f2ae3c16e3fa55"} authentication_1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a885086e2db836a6b0f2ae3c16e3fa55","responseTime":2,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:18Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.977431,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:18Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e","object_type":"device","payload":{"admin":true,"iat":1701705918,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE4fQ.lm_29iTDDjhu0QjG8Yx4uCEqkHm49RV8_LgykgEQ2Lo"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/c89ec300-4365-4d1c-920a-47cd43e09f6e HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.129","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"a885086e2db836a6b0f2ae3c16e3fa55"} device_1 | {"level":"info","message":"PATCH /devices/c89ec300-4365-4d1c-920a-47cd43e09f6e 200 124ms","method":"PATCH","requestID":"a885086e2db836a6b0f2ae3c16e3fa55","responseTime":124,"status":200,"url":"/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE4fQ.lm_29iTDDjhu0QjG8Yx4uCEqkHm49RV8_LgykgEQ2Lo","level":"info","message":"auth send jwt","requestID":"9ca2b47e85fa7b87b7c8213936ea6c0d"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9ca2b47e85fa7b87b7c8213936ea6c0d","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:18Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.545078,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:18Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e","object_type":"device","payload":{"admin":true,"iat":1701705918,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE4fQ.lm_29iTDDjhu0QjG8Yx4uCEqkHm49RV8_LgykgEQ2Lo"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c89ec300-4365-4d1c-920a-47cd43e09f6e/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.131","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"9ca2b47e85fa7b87b7c8213936ea6c0d"} device_1 | {"level":"info","message":"POST /devices/c89ec300-4365-4d1c-920a-47cd43e09f6e/websocket 200 126ms","method":"POST","requestID":"9ca2b47e85fa7b87b7c8213936ea6c0d","responseTime":126,"status":200,"url":"/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e' connected"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"44925a0e927cf613e8069495e164217c","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"44925a0e927cf613e8069495e164217c","responseTime":1,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:05:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173/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":"44925a0e927cf613e8069495e164217c"} device_1 | {"level":"info","message":"OPTIONS /devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173/websocket 200 1ms","method":"OPTIONS","requestID":"44925a0e927cf613e8069495e164217c","responseTime":1,"status":200,"url":"/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE5fQ.Vim54WCEwqC5CvuhJhyvdFa7gFhe_MQQKcHIC749IvQ","level":"info","message":"auth send jwt","requestID":"1751851275f6ab532123641b7a8f3bbb"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1751851275f6ab532123641b7a8f3bbb","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:19Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.315741,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:19Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173","object_type":"device","payload":{"admin":true,"iat":1701705919,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTE5fQ.Vim54WCEwqC5CvuhJhyvdFa7gFhe_MQQKcHIC749IvQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device_1 | {"level":"info","message":"POST /devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173/websocket 200 173ms","method":"POST","requestID":"1751851275f6ab532123641b7a8f3bbb","responseTime":173,"status":200,"url":"/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173/websocket"} gateway_1 | {"time_local":"04/Dec/2023:16:05:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.178","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1751851275f6ab532123641b7a8f3bbb"} device_1 | {"level":"info","message":"device 'http://localhost/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4","level":"info","message":"auth send jwt","requestID":"04c3a852f78f00e671d83ece79ded759"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"04c3a852f78f00e671d83ece79ded759","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.351904,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e","object_type":"device","payload":{"admin":true,"iat":1701705920,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c89ec300-4365-4d1c-920a-47cd43e09f6e? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"04c3a852f78f00e671d83ece79ded759"} device_1 | {"level":"info","message":"GET /devices/c89ec300-4365-4d1c-920a-47cd43e09f6e? 200 14ms","method":"GET","requestID":"04c3a852f78f00e671d83ece79ded759","responseTime":14,"status":200,"url":"/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4","level":"info","message":"auth send jwt","requestID":"744e8db9a7c7d333cdaea0713cb54637"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"744e8db9a7c7d333cdaea0713cb54637","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.281851,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173","object_type":"device","payload":{"admin":true,"iat":1701705920,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"744e8db9a7c7d333cdaea0713cb54637"} device_1 | {"level":"info","message":"GET /devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173? 200 12ms","method":"GET","requestID":"744e8db9a7c7d333cdaea0713cb54637","responseTime":12,"status":200,"url":"/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4","level":"info","message":"auth send jwt","requestID":"6dc33f7cf676deb8f240877b86afa1c3"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6dc33f7cf676deb8f240877b86afa1c3","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:54572","level":"info","msg":"Received request.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":0.845983,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705920,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"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:54572","level":"info","msg":"Received request.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.727346,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e","object_type":"device","payload":{"admin":true,"iat":1701705920,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:43376","level":"info","msg":"Received request.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"client_addr":"127.0.0.1:43376","level":"info","msg":"Sent response.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.464142,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173","object_type":"device","payload":{"admin":true,"iat":1701705920,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4"} authorization_1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/c89ec300-4365-4d1c-920a-47cd43e09f6e? 200 18ms","method":"GET","requestID":"ec6aae40-92be-11ee-b645-7f04f10d7150","responseTime":18,"status":200,"url":"/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173? 200 17ms","method":"GET","requestID":"ec6b2370-92be-11ee-b645-7f04f10d7150","responseTime":17,"status":200,"url":"/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"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:54572","level":"info","msg":"Received request.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:20Z"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.736181,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"client_addr":"127.0.0.1:43376","level":"info","msg":"Received request.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e","object_type":"device","payload":{"admin":true,"iat":1701705920,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization_1 | {"client_addr":"127.0.0.1:43376","level":"info","msg":"Sent response.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.448817,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173","object_type":"device","payload":{"admin":true,"iat":1701705920,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/c89ec300-4365-4d1c-920a-47cd43e09f6e? 200 18ms","method":"GET","requestID":"eca60990-92be-11ee-b645-7f04f10d7150","responseTime":18,"status":200,"url":"/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173? 200 16ms","method":"GET","requestID":"eca67ec0-92be-11ee-b645-7f04f10d7150","responseTime":16,"status":200,"url":"/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"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":"aa8bcfc1-206d-4011-bced-c0c8546ae62d"},{"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":"36e02f6e-05f7-40d6-b067-aa721f40ec35"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"93e96e88-b624-45fe-bf0b-e25f34166b39"}]},"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/c89ec300-4365-4d1c-920a-47cd43e09f6e"},{"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/0fe1bc95-4327-4057-a9c8-2cf268ff6173"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":1.042634,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705920,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F962d1abe-05df-4de6-9c0b-e7d3a0bdb906#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F962d1abe-05df-4de6-9c0b-e7d3a0bdb906","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"dcce082c-708d-44d0-a79f-ef78aa0ffd42","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705920.8228211} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e674315c-43cd-4eb3-886d-136bef612956","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705920.8230793} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"2549a45d-af88-4e2e-ac64-ce59374ec189","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705920.8237145} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f53434ce-2f38-497b-8e3b-cef9ae8a27ac","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705920.8240962} authorization_1 | {"level":"info","message":"POST /relations/update 200 133ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":133}} authorization_1 | {"level":"info","message":"POST /relations/update 200 114ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":114}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 788ms","method":"POST","requestID":"6dc33f7cf676deb8f240877b86afa1c3","responseTime":788,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:05: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.795","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6dc33f7cf676deb8f240877b86afa1c3"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4","level":"info","message":"auth send jwt","requestID":"b0207e5bd0556200d924604c0497dac5"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b0207e5bd0556200d924604c0497dac5","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.77848,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e","object_type":"device","payload":{"admin":true,"iat":1701705920,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/c063bb3b-9a56-4e8e-b871-d27fd861208a'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/c063bb3b-9a56-4e8e-b871-d27fd861208a'"} 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 262ms","method":"POST","requestID":"eca98c00-92be-11ee-b645-7f04f10d7150","responseTime":262,"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":"04/Dec/2023:16:05:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c89ec300-4365-4d1c-920a-47cd43e09f6e? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.128","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b0207e5bd0556200d924604c0497dac5"} device_1 | {"level":"info","message":"GET /devices/c89ec300-4365-4d1c-920a-47cd43e09f6e? 200 124ms","method":"GET","requestID":"b0207e5bd0556200d924604c0497dac5","responseTime":124,"status":200,"url":"/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4","level":"info","message":"auth send jwt","requestID":"878fdcc13b54bb15b94df1c1df3a15b7"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"878fdcc13b54bb15b94df1c1df3a15b7","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.002975,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:20Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173","object_type":"device","payload":{"admin":true,"iat":1701705920,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIwfQ.H64MS1Bj-kxeQJm4ESQ5Xa3j3FuyUaVwdH9ZK0c2Hw4"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"878fdcc13b54bb15b94df1c1df3a15b7"} device_1 | {"level":"info","message":"GET /devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173? 200 9ms","method":"GET","requestID":"878fdcc13b54bb15b94df1c1df3a15b7","responseTime":9,"status":200,"url":"/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173?"} device_1 | {"data":{"peerconnection":"c063bb3b-9a56-4e8e-b871-d27fd861208a","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"level":"info","message":"Successfully created peerconnections for experiment"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c063bb3b-9a56-4e8e-b871-d27fd861208a' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"c063bb3b-9a56-4e8e-b871-d27fd861208a","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"889b2321c42e46a756cebafa344adbf5","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"889b2321c42e46a756cebafa344adbf5","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/c89ec300-4365-4d1c-920a-47cd43e09f6e"},{"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/0fe1bc95-4327-4057-a9c8-2cf268ff6173"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/c063bb3b-9a56-4e8e-b871-d27fd861208a"}}},"level":"info","message":"received a callback"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"889b2321c42e46a756cebafa344adbf5","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:05:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"889b2321c42e46a756cebafa344adbf5"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIyfQ.gIBS9Ax1w82dUddExxZJyY6Tn4BxtAeko1IS5yIY_Hg","level":"info","message":"auth send jwt","requestID":"577d553105c48d9b0b7acd8d93e838af"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"577d553105c48d9b0b7acd8d93e838af","responseTime":3,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:22Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":1.342118,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:22Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906","object_type":"experiment","payload":{"admin":true,"iat":1701705922,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIyfQ.gIBS9Ax1w82dUddExxZJyY6Tn4BxtAeko1IS5yIY_Hg"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:22Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":1.316468,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:22Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c063bb3b-9a56-4e8e-b871-d27fd861208a","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/c063bb3b-9a56-4e8e-b871-d27fd861208a","object_type":"peerconnection","payload":{"admin":true,"iat":1701705922,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIyfQ.gIBS9Ax1w82dUddExxZJyY6Tn4BxtAeko1IS5yIY_Hg"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"peerconnection":"c063bb3b-9a56-4e8e-b871-d27fd861208a","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc063bb3b-9a56-4e8e-b871-d27fd861208a': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc063bb3b-9a56-4e8e-b871-d27fd861208a","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"ef8378c5-b8cd-4551-9c66-79bbb83537b5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705922.1976237} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d33449a6-de1b-44ce-bf79-67c98f76920a","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705922.1977413} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"data":{"peerconnection":"c063bb3b-9a56-4e8e-b871-d27fd861208a","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/c063bb3b-9a56-4e8e-b871-d27fd861208a 204 353ms","method":"DELETE","requestID":"ed7f2b80-92be-11ee-b645-7f04f10d7150","responseTime":353,"status":204,"url":"/peerconnections/c063bb3b-9a56-4e8e-b871-d27fd861208a"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/0fe1bc95-4327-4057-a9c8-2cf268ff6173'"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F962d1abe-05df-4de6-9c0b-e7d3a0bdb906': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F962d1abe-05df-4de6-9c0b-e7d3a0bdb906","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"42062b88-0633-45e0-818d-d130fec41e43","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705922.7029538} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3cb11b8f-8bc0-429d-a81e-5f54f78dfb3c","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705922.7031612} authorization_1 | {"level":"info","message":"POST /relations/update 200 116ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":116}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"} gateway_1 | {"time_local":"04/Dec/2023:16:05:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.335","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"577d553105c48d9b0b7acd8d93e838af"} experiment_1 | {"level":"info","message":"DELETE /experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906 204 1329ms","method":"DELETE","requestID":"577d553105c48d9b0b7acd8d93e838af","responseTime":1329,"status":204,"url":"/experiments/962d1abe-05df-4de6-9c0b-e7d3a0bdb906"} gateway_1 | {"time_local":"04/Dec/2023:16:05:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1592","request_time":"4.957","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"eda614066910d21610a0d515de135baf"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIzfQ.JBTmsRntNZP1TNb2FKf9-cDPLLMay1K_XZwQ7zqgfac","level":"info","message":"auth send jwt","requestID":"9f7cfe8fb63be526fc27d55135d29193"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9f7cfe8fb63be526fc27d55135d29193","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} gateway_1 | {"time_local":"04/Dec/2023:16:05:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1618","request_time":"3.564","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"136fca89f5e140f31f179cbe38df04c9"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:23Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.835943,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:23Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705923,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIzfQ.JBTmsRntNZP1TNb2FKf9-cDPLLMay1K_XZwQ7zqgfac"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"f8623a36-5d28-4a25-b1db-60a95afa8239","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705923.436623} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ef1d7c5d-b5d6-45eb-9d76-5d9d79479859","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705923.43673} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/c89ec300-4365-4d1c-920a-47cd43e09f6e' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 250ms","method":"POST","requestID":"9f7cfe8fb63be526fc27d55135d29193","responseTime":250,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.260","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9f7cfe8fb63be526fc27d55135d29193"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIzfQ.JBTmsRntNZP1TNb2FKf9-cDPLLMay1K_XZwQ7zqgfac","level":"info","message":"auth send jwt","requestID":"37c0189c76332bcd1cfb089a7d3b2dab"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"37c0189c76332bcd1cfb089a7d3b2dab","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:23Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.923096,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:23Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705923,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTIzfQ.JBTmsRntNZP1TNb2FKf9-cDPLLMay1K_XZwQ7zqgfac"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"d3d76150-e256-47fa-b902-f5245f58aaa5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705923.695431} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1855d4d9-629f-43ad-bd00-0c8ac943b583","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705923.695612} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/0fe1bc95-4327-4057-a9c8-2cf268ff6173' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 232ms","method":"POST","requestID":"37c0189c76332bcd1cfb089a7d3b2dab","responseTime":232,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.267","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"37c0189c76332bcd1cfb089a7d3b2dab"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI0fQ.wV9iXH6iGnp9wYcuzOYf4YvoEfsgrZ9O9gBA1mCaxw4","level":"info","message":"auth send jwt","requestID":"45a07647a9513dd399f9dedda965f84c"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"45a07647a9513dd399f9dedda965f84c","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:24Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.814311,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:24Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c","object_type":"device","payload":{"admin":true,"iat":1701705924,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI0fQ.wV9iXH6iGnp9wYcuzOYf4YvoEfsgrZ9O9gBA1mCaxw4"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.116","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"45a07647a9513dd399f9dedda965f84c"} device_1 | {"level":"info","message":"PATCH /devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c 200 111ms","method":"PATCH","requestID":"45a07647a9513dd399f9dedda965f84c","responseTime":111,"status":200,"url":"/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI0fQ.wV9iXH6iGnp9wYcuzOYf4YvoEfsgrZ9O9gBA1mCaxw4","level":"info","message":"auth send jwt","requestID":"4ace10749a0d4363cabb72971c161db4"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4ace10749a0d4363cabb72971c161db4","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:24Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.08721,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:24Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c","object_type":"device","payload":{"admin":true,"iat":1701705924,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI0fQ.wV9iXH6iGnp9wYcuzOYf4YvoEfsgrZ9O9gBA1mCaxw4"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.141","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"4ace10749a0d4363cabb72971c161db4"} device_1 | {"level":"info","message":"POST /devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c/websocket 200 134ms","method":"POST","requestID":"4ace10749a0d4363cabb72971c161db4","responseTime":134,"status":200,"url":"/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c' connected"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"04eae4d885d8a443886ad47ff5872e60","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"04eae4d885d8a443886ad47ff5872e60","responseTime":2,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:05:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/685639e2-e5fd-4510-8fbb-fe9255a1f107/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":"04eae4d885d8a443886ad47ff5872e60"} device_1 | {"level":"info","message":"OPTIONS /devices/685639e2-e5fd-4510-8fbb-fe9255a1f107/websocket 200 1ms","method":"OPTIONS","requestID":"04eae4d885d8a443886ad47ff5872e60","responseTime":1,"status":200,"url":"/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI1fQ.YqD-AJ1wH9MhDJfdEqCaMokrFnuLKQa2ktCzbOmvPk8","level":"info","message":"auth send jwt","requestID":"46b311c044758d8ca7ff37144c4cd710"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"46b311c044758d8ca7ff37144c4cd710","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:25Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":2.043939,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:25Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107","object_type":"device","payload":{"admin":true,"iat":1701705925,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI1fQ.YqD-AJ1wH9MhDJfdEqCaMokrFnuLKQa2ktCzbOmvPk8"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/685639e2-e5fd-4510-8fbb-fe9255a1f107/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.135","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"46b311c044758d8ca7ff37144c4cd710"} device_1 | {"level":"info","message":"POST /devices/685639e2-e5fd-4510-8fbb-fe9255a1f107/websocket 200 130ms","method":"POST","requestID":"46b311c044758d8ca7ff37144c4cd710","responseTime":130,"status":200,"url":"/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI2fQ.tGbOLqE1z7q0X-zS-wknL7RQxxtYplBQBCMTRIeo05g","level":"info","message":"auth send jwt","requestID":"21259ee63fb748a682bb2292a0d8cc15"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"21259ee63fb748a682bb2292a0d8cc15","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.071267,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c","object_type":"device","payload":{"admin":true,"iat":1701705926,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI2fQ.tGbOLqE1z7q0X-zS-wknL7RQxxtYplBQBCMTRIeo05g"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"21259ee63fb748a682bb2292a0d8cc15"} device_1 | {"level":"info","message":"GET /devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c? 200 12ms","method":"GET","requestID":"21259ee63fb748a682bb2292a0d8cc15","responseTime":12,"status":200,"url":"/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI2fQ.tGbOLqE1z7q0X-zS-wknL7RQxxtYplBQBCMTRIeo05g","level":"info","message":"auth send jwt","requestID":"b152cb315142b45089817257ab3afac8"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b152cb315142b45089817257ab3afac8","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.127548,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107","object_type":"device","payload":{"admin":true,"iat":1701705926,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI2fQ.tGbOLqE1z7q0X-zS-wknL7RQxxtYplBQBCMTRIeo05g"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/685639e2-e5fd-4510-8fbb-fe9255a1f107? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b152cb315142b45089817257ab3afac8"} device_1 | {"level":"info","message":"GET /devices/685639e2-e5fd-4510-8fbb-fe9255a1f107? 200 11ms","method":"GET","requestID":"b152cb315142b45089817257ab3afac8","responseTime":11,"status":200,"url":"/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI2fQ.tGbOLqE1z7q0X-zS-wknL7RQxxtYplBQBCMTRIeo05g","level":"info","message":"auth send jwt","requestID":"789e56012e9956612e1b3821cd2b683b"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"789e56012e9956612e1b3821cd2b683b","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:54572","level":"info","msg":"Received request.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.132555,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705926,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI2fQ.tGbOLqE1z7q0X-zS-wknL7RQxxtYplBQBCMTRIeo05g"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"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:54572","level":"info","msg":"Received request.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.198825,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c","object_type":"device","payload":{"admin":true,"iat":1701705926,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI2fQ.tGbOLqE1z7q0X-zS-wknL7RQxxtYplBQBCMTRIeo05g"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:41368","level":"info","msg":"Received request.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"client_addr":"127.0.0.1:41368","level":"info","msg":"Sent response.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.954259,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:26Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107","object_type":"device","payload":{"admin":true,"iat":1701705926,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI2fQ.tGbOLqE1z7q0X-zS-wknL7RQxxtYplBQBCMTRIeo05g"} device_1 | {"level":"info","message":"GET /devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c? 200 14ms","method":"GET","requestID":"f01343e0-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c?"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/685639e2-e5fd-4510-8fbb-fe9255a1f107? 200 15ms","method":"GET","requestID":"f0139200-92be-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"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/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.108874,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"client_addr":"127.0.0.1:41368","level":"info","msg":"Received request.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c","object_type":"device","payload":{"admin":true,"iat":1701705926,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI2fQ.tGbOLqE1z7q0X-zS-wknL7RQxxtYplBQBCMTRIeo05g"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:41368","level":"info","msg":"Sent response.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.333118,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107","object_type":"device","payload":{"admin":true,"iat":1701705926,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI2fQ.tGbOLqE1z7q0X-zS-wknL7RQxxtYplBQBCMTRIeo05g"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"GET /devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c? 200 12ms","method":"GET","requestID":"f04e9f30-92be-11ee-b645-7f04f10d7150","responseTime":12,"status":200,"url":"/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/685639e2-e5fd-4510-8fbb-fe9255a1f107? 200 14ms","method":"GET","requestID":"f04eed50-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"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":"50eb2cbe-3824-4ee8-90cc-3168eeaf91a8"},{"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":"5d63d33a-404b-44d6-a9a1-9d0e16b811ee"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"713f4bd4-1c77-46b7-8b46-a974516f5c39"}]},"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/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c"},{"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/685639e2-e5fd-4510-8fbb-fe9255a1f107"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.650426,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705926,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI2fQ.tGbOLqE1z7q0X-zS-wknL7RQxxtYplBQBCMTRIeo05g"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd48b940d-b6a9-4ba0-a81c-61b91949bdf5#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd48b940d-b6a9-4ba0-a81c-61b91949bdf5","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"a5a220e1-3248-4e18-a280-596198321d16","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705926.9669929} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a3ba797b-aaef-4d06-8c92-d4a880fcbba9","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705926.9671354} authorization_1 | {"level":"info","message":"POST /relations/update 200 142ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":142}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"835548c0-1359-4e85-8944-c08717da596d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705926.969126} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"845f6e5d-0800-46b2-8c9a-32b2a862c82d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705926.9694576} authorization_1 | {"level":"info","message":"POST /relations/update 200 125ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":125}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 823ms","method":"POST","requestID":"789e56012e9956612e1b3821cd2b683b","responseTime":823,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:05:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.830","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"789e56012e9956612e1b3821cd2b683b"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI2fQ.tGbOLqE1z7q0X-zS-wknL7RQxxtYplBQBCMTRIeo05g","level":"info","message":"auth send jwt","requestID":"b7d041c849a151c2632608d925b4f125"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b7d041c849a151c2632608d925b4f125","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.65321,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:26Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c","object_type":"device","payload":{"admin":true,"iat":1701705926,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI2fQ.tGbOLqE1z7q0X-zS-wknL7RQxxtYplBQBCMTRIeo05g"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/5cb32031-902a-41e1-951f-7d839158a197'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/5cb32031-902a-41e1-951f-7d839158a197'"} 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 273ms","method":"POST","requestID":"f0518560-92be-11ee-b645-7f04f10d7150","responseTime":273,"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":"04/Dec/2023:16:05:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.130","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b7d041c849a151c2632608d925b4f125"} device_1 | {"level":"info","message":"GET /devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c? 200 125ms","method":"GET","requestID":"b7d041c849a151c2632608d925b4f125","responseTime":125,"status":200,"url":"/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI3fQ.aleknqZ3HNUc1VMy_0Q9lb6Px1zju0uTZiRQ9TqsoRk","level":"info","message":"auth send jwt","requestID":"f831e31f4eaad5d45d062ddc63dfbd4b"} authentication_1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f831e31f4eaad5d45d062ddc63dfbd4b","responseTime":2,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:27Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.884144,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:27Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107","object_type":"device","payload":{"admin":true,"iat":1701705927,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI3fQ.aleknqZ3HNUc1VMy_0Q9lb6Px1zju0uTZiRQ9TqsoRk"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/685639e2-e5fd-4510-8fbb-fe9255a1f107? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f831e31f4eaad5d45d062ddc63dfbd4b"} device_1 | {"level":"info","message":"GET /devices/685639e2-e5fd-4510-8fbb-fe9255a1f107? 200 9ms","method":"GET","requestID":"f831e31f4eaad5d45d062ddc63dfbd4b","responseTime":9,"status":200,"url":"/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107?"} device_1 | {"data":{"peerconnection":"5cb32031-902a-41e1-951f-7d839158a197","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"level":"info","message":"Successfully created peerconnections for experiment"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/5cb32031-902a-41e1-951f-7d839158a197' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"5cb32031-902a-41e1-951f-7d839158a197","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"f302f4e13cb6cd7c7009af148aeb0125","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"f302f4e13cb6cd7c7009af148aeb0125","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/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c"},{"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/685639e2-e5fd-4510-8fbb-fe9255a1f107"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/5cb32031-902a-41e1-951f-7d839158a197"}}},"level":"info","message":"received a callback"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"f302f4e13cb6cd7c7009af148aeb0125","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:05: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.006","http_referrer":"","http_user_agent":"node-fetch","requestID":"f302f4e13cb6cd7c7009af148aeb0125"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI4fQ.JAL6vrwqRh1CdwHda2QWvDiJBWCOuk7ATJYFvV6dN-k","level":"info","message":"auth send jwt","requestID":"3e90f5d8f5c96b723efb373390b3dc69"} authentication_1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3e90f5d8f5c96b723efb373390b3dc69","responseTime":2,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:28Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":0.773371,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:28Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5","object_type":"experiment","payload":{"admin":true,"iat":1701705928,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI4fQ.JAL6vrwqRh1CdwHda2QWvDiJBWCOuk7ATJYFvV6dN-k"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:28Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":1.138334,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:28Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/5cb32031-902a-41e1-951f-7d839158a197","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/5cb32031-902a-41e1-951f-7d839158a197","object_type":"peerconnection","payload":{"admin":true,"iat":1701705928,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI4fQ.JAL6vrwqRh1CdwHda2QWvDiJBWCOuk7ATJYFvV6dN-k"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"data":{"peerconnection":"5cb32031-902a-41e1-951f-7d839158a197","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F5cb32031-902a-41e1-951f-7d839158a197': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F5cb32031-902a-41e1-951f-7d839158a197","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"dfc02f65-ae1e-447d-b79d-295e6e666eec","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705928.3216925} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a8f8eedb-828b-4c9b-8105-331c9040cc10","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705928.3219175} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device_1 | {"data":{"peerconnection":"5cb32031-902a-41e1-951f-7d839158a197","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/5cb32031-902a-41e1-951f-7d839158a197 204 352ms","method":"DELETE","requestID":"f122b810-92be-11ee-b645-7f04f10d7150","responseTime":353,"status":204,"url":"/peerconnections/5cb32031-902a-41e1-951f-7d839158a197"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/685639e2-e5fd-4510-8fbb-fe9255a1f107'"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd48b940d-b6a9-4ba0-a81c-61b91949bdf5': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd48b940d-b6a9-4ba0-a81c-61b91949bdf5","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"f945b50a-4365-4919-8223-53a308acb7f5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705928.823764} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"79f92c6d-8d20-4c65-8c4c-d06a8b16ad96","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705928.8239472} authorization_1 | {"level":"info","message":"POST /relations/update 200 138ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":138}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"} gateway_1 | {"time_local":"04/Dec/2023:16:05:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.414","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3e90f5d8f5c96b723efb373390b3dc69"} experiment_1 | {"level":"info","message":"DELETE /experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5 204 1410ms","method":"DELETE","requestID":"3e90f5d8f5c96b723efb373390b3dc69","responseTime":1410,"status":204,"url":"/experiments/d48b940d-b6a9-4ba0-a81c-61b91949bdf5"} gateway_1 | {"time_local":"04/Dec/2023:16:05:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1592","request_time":"4.981","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"54e2ea026e5cf3b3556436072a802c48"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI5fQ.7_qg-ejsmdZRSpgLBPhUWtaCIZsWy1Q5hT_OPdoSCFo","level":"info","message":"auth send jwt","requestID":"0230082525da2a017acf513e2f76f7b8"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0230082525da2a017acf513e2f76f7b8","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} gateway_1 | {"time_local":"04/Dec/2023:16:05:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1618","request_time":"3.629","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"582911d1119dcfc0dec97bccbb0ab0cf"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:29Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.763092,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:29Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705929,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI5fQ.7_qg-ejsmdZRSpgLBPhUWtaCIZsWy1Q5hT_OPdoSCFo"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"7773b95c-9c49-4b78-9ae0-9281f43e7467","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705929.6324859} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4de400bd-0be4-4d57-b0ed-e65c8543a77b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705929.6327415} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/06ded62f-4c2e-45ef-8bb7-b4ccc5b2465c' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 250ms","method":"POST","requestID":"0230082525da2a017acf513e2f76f7b8","responseTime":250,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.259","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0230082525da2a017acf513e2f76f7b8"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI5fQ.7_qg-ejsmdZRSpgLBPhUWtaCIZsWy1Q5hT_OPdoSCFo","level":"info","message":"auth send jwt","requestID":"4e04bb020ba8c72bb5825f0418e17c86"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4e04bb020ba8c72bb5825f0418e17c86","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:29Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.858846,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:29Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705929,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTI5fQ.7_qg-ejsmdZRSpgLBPhUWtaCIZsWy1Q5hT_OPdoSCFo"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"e5a77fad-9ea9-494f-bb7d-882786f95c6c","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705929.8916175} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c3e82c10-2b95-429c-9a36-47b0520b7b49","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705929.891894} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/685639e2-e5fd-4510-8fbb-fe9255a1f107' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 253ms","method":"POST","requestID":"4e04bb020ba8c72bb5825f0418e17c86","responseTime":253,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.289","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4e04bb020ba8c72bb5825f0418e17c86"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMwfQ.WFHE8Ir2zt5NhIy4eeddnmxGZbbW4Il-e06eUxlZPtE","level":"info","message":"auth send jwt","requestID":"767387162442c44af758856bd0368154"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"767387162442c44af758856bd0368154","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:30Z"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMwfQ.WFHE8Ir2zt5NhIy4eeddnmxGZbbW4Il-e06eUxlZPtE","level":"info","message":"auth send jwt","requestID":"2f3bdffd8c5f1f79fa32eb9dfe723fa5"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2f3bdffd8c5f1f79fa32eb9dfe723fa5","responseTime":3,"status":200,"url":"/auth"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.113948,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:30Z"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc","object_type":"device","payload":{"admin":true,"iat":1701705930,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMwfQ.WFHE8Ir2zt5NhIy4eeddnmxGZbbW4Il-e06eUxlZPtE"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:30Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.932069,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:30Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc","object_type":"device","payload":{"admin":true,"iat":1701705930,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMwfQ.WFHE8Ir2zt5NhIy4eeddnmxGZbbW4Il-e06eUxlZPtE"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/695cdad0-9354-4fa9-845f-0d3a930b05cc HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.205","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"767387162442c44af758856bd0368154"} device_1 | {"level":"info","message":"PATCH /devices/695cdad0-9354-4fa9-845f-0d3a930b05cc 200 201ms","method":"PATCH","requestID":"767387162442c44af758856bd0368154","responseTime":201,"status":200,"url":"/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMwfQ.WFHE8Ir2zt5NhIy4eeddnmxGZbbW4Il-e06eUxlZPtE","level":"info","message":"auth send jwt","requestID":"ccd50c4411ceb4a508c221845bbeda01"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ccd50c4411ceb4a508c221845bbeda01","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:30Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.199915,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:30Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc","object_type":"device","payload":{"admin":true,"iat":1701705930,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMwfQ.WFHE8Ir2zt5NhIy4eeddnmxGZbbW4Il-e06eUxlZPtE"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.359","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"2f3bdffd8c5f1f79fa32eb9dfe723fa5"} device_1 | {"level":"info","message":"PATCH /devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc 200 354ms","method":"PATCH","requestID":"2f3bdffd8c5f1f79fa32eb9dfe723fa5","responseTime":354,"status":200,"url":"/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMwfQ.WFHE8Ir2zt5NhIy4eeddnmxGZbbW4Il-e06eUxlZPtE","level":"info","message":"auth send jwt","requestID":"1cf7c34fb6d3523daacf9cdfc6434765"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1cf7c34fb6d3523daacf9cdfc6434765","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:30Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.255568,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:30Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc","object_type":"device","payload":{"admin":true,"iat":1701705930,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMwfQ.WFHE8Ir2zt5NhIy4eeddnmxGZbbW4Il-e06eUxlZPtE"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device_1 | {"level":"info","message":"POST /devices/695cdad0-9354-4fa9-845f-0d3a930b05cc/websocket 200 301ms","method":"POST","requestID":"ccd50c4411ceb4a508c221845bbeda01","responseTime":301,"status":200,"url":"/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc/websocket"} gateway_1 | {"time_local":"04/Dec/2023:16:05:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/695cdad0-9354-4fa9-845f-0d3a930b05cc/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.306","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"ccd50c4411ceb4a508c221845bbeda01"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.275","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"1cf7c34fb6d3523daacf9cdfc6434765"} device_1 | {"level":"info","message":"POST /devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc/websocket 200 268ms","method":"POST","requestID":"1cf7c34fb6d3523daacf9cdfc6434765","responseTime":268,"status":200,"url":"/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc' connected"} device_1 | {"level":"info","message":"device 'http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMxfQ.lgq0hSiQKSUh0eQ1gFRQzlNnCD8gfXhk2wSAKLWYs4g","level":"info","message":"auth send jwt","requestID":"4b6e498d7935d22526a9c1f2c7c5663d"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4b6e498d7935d22526a9c1f2c7c5663d","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:31Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.198922,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:31Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc","object_type":"device","payload":{"admin":true,"iat":1701705931,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMxfQ.lgq0hSiQKSUh0eQ1gFRQzlNnCD8gfXhk2wSAKLWYs4g"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/695cdad0-9354-4fa9-845f-0d3a930b05cc? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4b6e498d7935d22526a9c1f2c7c5663d"} device_1 | {"level":"info","message":"GET /devices/695cdad0-9354-4fa9-845f-0d3a930b05cc? 200 13ms","method":"GET","requestID":"4b6e498d7935d22526a9c1f2c7c5663d","responseTime":13,"status":200,"url":"/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMxfQ.lgq0hSiQKSUh0eQ1gFRQzlNnCD8gfXhk2wSAKLWYs4g","level":"info","message":"auth send jwt","requestID":"7434c3a381f3fe8fbef2fcdf54630d35"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7434c3a381f3fe8fbef2fcdf54630d35","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:31Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.106456,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:31Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc","object_type":"device","payload":{"admin":true,"iat":1701705931,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMxfQ.lgq0hSiQKSUh0eQ1gFRQzlNnCD8gfXhk2wSAKLWYs4g"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7434c3a381f3fe8fbef2fcdf54630d35"} device_1 | {"level":"info","message":"GET /devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc? 200 11ms","method":"GET","requestID":"7434c3a381f3fe8fbef2fcdf54630d35","responseTime":11,"status":200,"url":"/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMxfQ.lgq0hSiQKSUh0eQ1gFRQzlNnCD8gfXhk2wSAKLWYs4g","level":"info","message":"auth send jwt","requestID":"c56a7b18c1bf7da9fc50b60747e4fe32"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c56a7b18c1bf7da9fc50b60747e4fe32","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:54572","level":"info","msg":"Received request.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:31Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.189918,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:31Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705931,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMxfQ.lgq0hSiQKSUh0eQ1gFRQzlNnCD8gfXhk2wSAKLWYs4g"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"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:54572","level":"info","msg":"Received request.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:31Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.078821,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:31Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc","object_type":"device","payload":{"admin":true,"iat":1701705931,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMxfQ.lgq0hSiQKSUh0eQ1gFRQzlNnCD8gfXhk2wSAKLWYs4g"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization_1 | {"client_addr":"127.0.0.1:41376","level":"info","msg":"Received request.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:31Z"} authorization_1 | {"client_addr":"127.0.0.1:41376","level":"info","msg":"Sent response.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.684218,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:31Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc","object_type":"device","payload":{"admin":true,"iat":1701705931,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMxfQ.lgq0hSiQKSUh0eQ1gFRQzlNnCD8gfXhk2wSAKLWYs4g"} device_1 | {"level":"info","message":"GET /devices/695cdad0-9354-4fa9-845f-0d3a930b05cc? 200 17ms","method":"GET","requestID":"f3494190-92be-11ee-b645-7f04f10d7150","responseTime":17,"status":200,"url":"/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc?"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc? 200 18ms","method":"GET","requestID":"f3498fb0-92be-11ee-b645-7f04f10d7150","responseTime":18,"status":200,"url":"/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"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/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.463591,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:32Z"} authorization_1 | {"client_addr":"127.0.0.1:41376","level":"info","msg":"Received request.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:32Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc","object_type":"device","payload":{"admin":true,"iat":1701705931,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMxfQ.lgq0hSiQKSUh0eQ1gFRQzlNnCD8gfXhk2wSAKLWYs4g"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization_1 | {"client_addr":"127.0.0.1:41376","level":"info","msg":"Sent response.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.845059,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:32Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc","object_type":"device","payload":{"admin":true,"iat":1701705931,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMxfQ.lgq0hSiQKSUh0eQ1gFRQzlNnCD8gfXhk2wSAKLWYs4g"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/695cdad0-9354-4fa9-845f-0d3a930b05cc? 200 17ms","method":"GET","requestID":"f3897ee0-92be-11ee-b645-7f04f10d7150","responseTime":17,"status":200,"url":"/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc? 200 15ms","method":"GET","requestID":"f389f410-92be-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"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":"bace3d52-4d39-4dcb-a1fb-133216592717"},{"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":"a6b3a95d-e77f-4a44-97f7-fc0f0661ac11"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"8add57ff-cf6e-4e11-a77a-b91c1b118d9f"}]},"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/e9965470-518c-4f53-96ed-79f1e4b2b7bc"},{"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/695cdad0-9354-4fa9-845f-0d3a930b05cc"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.772561,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:32Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705931,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMxfQ.lgq0hSiQKSUh0eQ1gFRQzlNnCD8gfXhk2wSAKLWYs4g"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"5d4305ac-f7eb-4464-9bc2-ecd48feda2b0","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705932.3713503} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c3913982-1fc9-4c18-8f61-1b339a32a039","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705932.371761} authorization_1 | {"level":"info","message":"POST /relations/update 200 128ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":128}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"060cbe6e-5356-4588-bbeb-16a61c9a5dbe","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705932.3736882} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dc41c994-7cdf-4514-9721-72bfed489691","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705932.3742387} authorization_1 | {"level":"info","message":"POST /relations/update 200 110ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":110}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 813ms","method":"POST","requestID":"c56a7b18c1bf7da9fc50b60747e4fe32","responseTime":813,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:05:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.821","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c56a7b18c1bf7da9fc50b60747e4fe32"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMyfQ.YWarUCaAvJtFztOG-Bk5N89fqdesGrB8DDjcpSk0R7I","level":"info","message":"auth send jwt","requestID":"117a347130430642aa17af42ae572e3b"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"117a347130430642aa17af42ae572e3b","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.094094,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:32Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc","object_type":"device","payload":{"admin":true,"iat":1701705932,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMyfQ.YWarUCaAvJtFztOG-Bk5N89fqdesGrB8DDjcpSk0R7I"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/b9acb3a3-c11e-47a6-85fb-be825db888be'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/b9acb3a3-c11e-47a6-85fb-be825db888be'"} 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 406ms","method":"POST","requestID":"f38cb330-92be-11ee-b645-7f04f10d7150","responseTime":406,"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":"04/Dec/2023:16:05:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/695cdad0-9354-4fa9-845f-0d3a930b05cc? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.280","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"117a347130430642aa17af42ae572e3b"} device_1 | {"level":"info","message":"GET /devices/695cdad0-9354-4fa9-845f-0d3a930b05cc? 200 276ms","method":"GET","requestID":"117a347130430642aa17af42ae572e3b","responseTime":276,"status":200,"url":"/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMyfQ.YWarUCaAvJtFztOG-Bk5N89fqdesGrB8DDjcpSk0R7I","level":"info","message":"auth send jwt","requestID":"67d250a9b21d5064f76eb2155c8ab5d8"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"67d250a9b21d5064f76eb2155c8ab5d8","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.764073,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:32Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc","object_type":"device","payload":{"admin":true,"iat":1701705932,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMyfQ.YWarUCaAvJtFztOG-Bk5N89fqdesGrB8DDjcpSk0R7I"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"67d250a9b21d5064f76eb2155c8ab5d8"} device_1 | {"level":"info","message":"GET /devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc? 200 8ms","method":"GET","requestID":"67d250a9b21d5064f76eb2155c8ab5d8","responseTime":8,"status":200,"url":"/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc?"} device_1 | {"data":{"peerconnection":"b9acb3a3-c11e-47a6-85fb-be825db888be","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device_1 | {"data":{"peerconnection":"b9acb3a3-c11e-47a6-85fb-be825db888be","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/b9acb3a3-c11e-47a6-85fb-be825db888be' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"b9acb3a3-c11e-47a6-85fb-be825db888be","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"d56b3bab9172319057374c401271fe76","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"d56b3bab9172319057374c401271fe76","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/e9965470-518c-4f53-96ed-79f1e4b2b7bc"},{"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/695cdad0-9354-4fa9-845f-0d3a930b05cc"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/b9acb3a3-c11e-47a6-85fb-be825db888be"}}},"level":"info","message":"received a callback"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMyfQ.YWarUCaAvJtFztOG-Bk5N89fqdesGrB8DDjcpSk0R7I","level":"info","message":"auth send jwt","requestID":"78e4dfc97104ed33db87a7b71b60d6c4"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"78e4dfc97104ed33db87a7b71b60d6c4","responseTime":4,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 156ms","method":"POST","requestID":"d56b3bab9172319057374c401271fe76","responseTime":156,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:05:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.160","http_referrer":"","http_user_agent":"node-fetch","requestID":"d56b3bab9172319057374c401271fe76"} device_1 | {"data":{"peerconnection":"b9acb3a3-c11e-47a6-85fb-be825db888be","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"level":"info","message":"Successfully created peerconnections for experiment"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:33Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":2.57122,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:33Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17","object_type":"experiment","payload":{"admin":true,"iat":1701705932,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMyfQ.YWarUCaAvJtFztOG-Bk5N89fqdesGrB8DDjcpSk0R7I"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:33Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":1.390318,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:33Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b9acb3a3-c11e-47a6-85fb-be825db888be","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/b9acb3a3-c11e-47a6-85fb-be825db888be","object_type":"peerconnection","payload":{"admin":true,"iat":1701705932,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTMyfQ.YWarUCaAvJtFztOG-Bk5N89fqdesGrB8DDjcpSk0R7I"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"peerconnection":"b9acb3a3-c11e-47a6-85fb-be825db888be","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb9acb3a3-c11e-47a6-85fb-be825db888be': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb9acb3a3-c11e-47a6-85fb-be825db888be","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"076f0ca3-d002-47cf-9b30-1d65af6bf72a","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705933.1097562} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f780bdf1-e80d-49ce-808c-fa05ecafba08","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705933.1098418} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/b9acb3a3-c11e-47a6-85fb-be825db888be' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"b9acb3a3-c11e-47a6-85fb-be825db888be","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"eccdf3bb241869798f5733ac23aaa140","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"eccdf3bb241869798f5733ac23aaa140","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/e9965470-518c-4f53-96ed-79f1e4b2b7bc"},{"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/695cdad0-9354-4fa9-845f-0d3a930b05cc"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/b9acb3a3-c11e-47a6-85fb-be825db888be"}}},"level":"info","message":"received a callback"} device_1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:33Z"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","contextual_tuples":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb9acb3a3-c11e-47a6-85fb-be825db888be","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"465025d0-c67b-4cab-97ca-43e02cdb8b77","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705933.2527757} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.069793,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:33Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b9acb3a3-c11e-47a6-85fb-be825db888be","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/b9acb3a3-c11e-47a6-85fb-be825db888be","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/b9acb3a3-c11e-47a6-85fb-be825db888be 204 292ms","method":"DELETE","requestID":"f4093630-92be-11ee-b645-7f04f10d7150","responseTime":292,"status":204,"url":"/peerconnections/b9acb3a3-c11e-47a6-85fb-be825db888be"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc'"} device_1 | {"data":{"error":"MissingEntityError","message":"The requested Peerconnection does not exist in the database","method":"GET","stack":"MissingEntityError: The requested Peerconnection does not exist in the database\n at PeerconnectionRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async Object.getPeerconnectionsByPeerconnectionId (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/peerconnections/peerconnection/get.js:13:33)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:351:28","status":404,"url":"/peerconnections/b9acb3a3-c11e-47a6-85fb-be825db888be"},"level":"error","message":"An error occurred during the handling of a request","requestID":"f4234de0-92be-11ee-b645-7f04f10d7150"} device_1 | {"level":"info","message":"GET /peerconnections/b9acb3a3-c11e-47a6-85fb-be825db888be 404 124ms","method":"GET","requestID":"f4234de0-92be-11ee-b645-7f04f10d7150","responseTime":124,"status":404,"url":"/peerconnections/b9acb3a3-c11e-47a6-85fb-be825db888be"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc'"} experiment_1 | {"data":{"error":"UnsuccessfulRequestError","message":"Server returned response with status 404","method":"POST","stack":"UnsuccessfulRequestError: Server returned response with status 404\n at Client.getPeerconnection (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/clients/device/client.js:870:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async handlePeerconnectionStatusChangedEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/peerconnectionStatusChanged.js:41:22)\n at async handleEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/index.js:20:20)\n at async file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/index.js:20:39","status":500,"url":"/callbacks/experiment"},"level":"error","message":"An error occurred during the handling of a request","requestID":"eccdf3bb241869798f5733ac23aaa140"} gateway_1 | {"time_local":"04/Dec/2023:16:05:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "500","body_bytes_sent":"89","request_time":"0.139","http_referrer":"","http_user_agent":"node-fetch","requestID":"eccdf3bb241869798f5733ac23aaa140"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 500 135ms","method":"POST","requestID":"eccdf3bb241869798f5733ac23aaa140","responseTime":135,"status":500,"url":"/callbacks/experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"6ea6df46-aa78-49f9-b06a-6c861b989749","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705933.6710825} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a0731992-797c-43e7-b402-f8b830f7b152","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705933.672192} authorization_1 | {"level":"info","message":"POST /relations/update 200 147ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":147}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"} gateway_1 | {"time_local":"04/Dec/2023:16:05:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.703","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"78e4dfc97104ed33db87a7b71b60d6c4"} experiment_1 | {"level":"info","message":"DELETE /experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17 204 1699ms","method":"DELETE","requestID":"78e4dfc97104ed33db87a7b71b60d6c4","responseTime":1699,"status":204,"url":"/experiments/f25f4f9b-c4b1-4dbd-9ba1-ee12c8095a17"} gateway_1 | {"time_local":"04/Dec/2023:16:05:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1623","request_time":"3.239","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"1e235e82f92864faffbe112ae960f0f4"} gateway_1 | {"time_local":"04/Dec/2023:16:05:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1625","request_time":"3.366","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"7f6dba55f3053b18280d14588af4e78c"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM0fQ.iEqy4z7XVEI0UTx2zmfiS2mYjG2ElrXYVz2kptjsqE0","level":"info","message":"auth send jwt","requestID":"41d0fa951f692fe674de9e95fc9f3c2c"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"41d0fa951f692fe674de9e95fc9f3c2c","responseTime":5,"status":200,"url":"/auth"} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/695cdad0-9354-4fa9-845f-0d3a930b05cc' closed"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:34Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.774488,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:34Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705934,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM0fQ.iEqy4z7XVEI0UTx2zmfiS2mYjG2ElrXYVz2kptjsqE0"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"d0f84feb-705d-4c6c-98e0-bd606ee86e1e","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705934.4806838} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fb042fe0-3fb3-4712-83a4-55601e3ef348","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705934.4807758} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/e9965470-518c-4f53-96ed-79f1e4b2b7bc' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 265ms","method":"POST","requestID":"41d0fa951f692fe674de9e95fc9f3c2c","responseTime":265,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.275","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"41d0fa951f692fe674de9e95fc9f3c2c"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM0fQ.iEqy4z7XVEI0UTx2zmfiS2mYjG2ElrXYVz2kptjsqE0","level":"info","message":"auth send jwt","requestID":"fd4843cfc4dcca1e0f57be3bb8f6cb47"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fd4843cfc4dcca1e0f57be3bb8f6cb47","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:34Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.942076,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:34Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705934,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM0fQ.iEqy4z7XVEI0UTx2zmfiS2mYjG2ElrXYVz2kptjsqE0"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"4ff212d7-5b9b-49aa-add8-6331a8ac63be","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705934.758089} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9d4f9493-63d5-44e0-afe8-1fdb9af59236","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705934.75819} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 140ms","method":"POST","requestID":"fd4843cfc4dcca1e0f57be3bb8f6cb47","responseTime":140,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.173","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fd4843cfc4dcca1e0f57be3bb8f6cb47"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM1fQ.5flbOXUC93ZMo3Fu1oXr683NYY9IQ22exZGgCRMYRkA","level":"info","message":"auth send jwt","requestID":"596c69ef321cde7708ff5d24083a4c1e"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"596c69ef321cde7708ff5d24083a4c1e","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:35Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.842637,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:35Z"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM1fQ.5flbOXUC93ZMo3Fu1oXr683NYY9IQ22exZGgCRMYRkA","level":"info","message":"auth send jwt","requestID":"9328d5a1637e5bc25ed4aedff6d21c09"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9328d5a1637e5bc25ed4aedff6d21c09","responseTime":3,"status":200,"url":"/auth"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8","object_type":"device","payload":{"admin":true,"iat":1701705935,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM1fQ.5flbOXUC93ZMo3Fu1oXr683NYY9IQ22exZGgCRMYRkA"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:35Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.935296,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:35Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576","object_type":"device","payload":{"admin":true,"iat":1701705935,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM1fQ.5flbOXUC93ZMo3Fu1oXr683NYY9IQ22exZGgCRMYRkA"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8 HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.145","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"596c69ef321cde7708ff5d24083a4c1e"} device_1 | {"level":"info","message":"PATCH /devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8 200 142ms","method":"PATCH","requestID":"596c69ef321cde7708ff5d24083a4c1e","responseTime":142,"status":200,"url":"/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM1fQ.5flbOXUC93ZMo3Fu1oXr683NYY9IQ22exZGgCRMYRkA","level":"info","message":"auth send jwt","requestID":"98e82b633da1571fc3e290a4d75eccfa"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"98e82b633da1571fc3e290a4d75eccfa","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:35Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.724335,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:35Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8","object_type":"device","payload":{"admin":true,"iat":1701705935,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM1fQ.5flbOXUC93ZMo3Fu1oXr683NYY9IQ22exZGgCRMYRkA"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576 HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.292","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"9328d5a1637e5bc25ed4aedff6d21c09"} device_1 | {"level":"info","message":"PATCH /devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576 200 287ms","method":"PATCH","requestID":"9328d5a1637e5bc25ed4aedff6d21c09","responseTime":287,"status":200,"url":"/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM1fQ.5flbOXUC93ZMo3Fu1oXr683NYY9IQ22exZGgCRMYRkA","level":"info","message":"auth send jwt","requestID":"bf5aa73b1636b0d9e9d3d060dbf7ad71"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"bf5aa73b1636b0d9e9d3d060dbf7ad71","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:35Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.160756,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:35Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576","object_type":"device","payload":{"admin":true,"iat":1701705935,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM1fQ.5flbOXUC93ZMo3Fu1oXr683NYY9IQ22exZGgCRMYRkA"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.299","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"98e82b633da1571fc3e290a4d75eccfa"} device_1 | {"level":"info","message":"POST /devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8/websocket 200 292ms","method":"POST","requestID":"98e82b633da1571fc3e290a4d75eccfa","responseTime":292,"status":200,"url":"/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8/websocket"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.291","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"bf5aa73b1636b0d9e9d3d060dbf7ad71"} device_1 | {"level":"info","message":"POST /devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576/websocket 200 285ms","method":"POST","requestID":"bf5aa73b1636b0d9e9d3d060dbf7ad71","responseTime":285,"status":200,"url":"/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8' connected"} device_1 | {"level":"info","message":"device 'http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM2fQ.95uGtOMs7FLOXZlHGOydXWm6wuJoacoj4qol5WDhERk","level":"info","message":"auth send jwt","requestID":"2c86bc0c87685fe1b78b2c94e837a517"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2c86bc0c87685fe1b78b2c94e837a517","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.288882,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8","object_type":"device","payload":{"admin":true,"iat":1701705936,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM2fQ.95uGtOMs7FLOXZlHGOydXWm6wuJoacoj4qol5WDhERk"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2c86bc0c87685fe1b78b2c94e837a517"} device_1 | {"level":"info","message":"GET /devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8? 200 13ms","method":"GET","requestID":"2c86bc0c87685fe1b78b2c94e837a517","responseTime":13,"status":200,"url":"/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM2fQ.95uGtOMs7FLOXZlHGOydXWm6wuJoacoj4qol5WDhERk","level":"info","message":"auth send jwt","requestID":"c46d6117a5cd8e54ddc353412f95c712"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c46d6117a5cd8e54ddc353412f95c712","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.954957,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576","object_type":"device","payload":{"admin":true,"iat":1701705936,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM2fQ.95uGtOMs7FLOXZlHGOydXWm6wuJoacoj4qol5WDhERk"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/bafe992d-1dbd-4471-8849-8ccb6dc6c576? 200 10ms","method":"GET","requestID":"c46d6117a5cd8e54ddc353412f95c712","responseTime":10,"status":200,"url":"/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c46d6117a5cd8e54ddc353412f95c712"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM2fQ.95uGtOMs7FLOXZlHGOydXWm6wuJoacoj4qol5WDhERk","level":"info","message":"auth send jwt","requestID":"1f92a18e4fb9d7276e30746b782d9c77"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1f92a18e4fb9d7276e30746b782d9c77","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:54572","level":"info","msg":"Received request.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.099558,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705936,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM2fQ.95uGtOMs7FLOXZlHGOydXWm6wuJoacoj4qol5WDhERk"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"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:54572","level":"info","msg":"Received request.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.052894,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8","object_type":"device","payload":{"admin":true,"iat":1701705936,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM2fQ.95uGtOMs7FLOXZlHGOydXWm6wuJoacoj4qol5WDhERk"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"client_addr":"127.0.0.1:41376","level":"info","msg":"Received request.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"client_addr":"127.0.0.1:41376","level":"info","msg":"Sent response.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.186566,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576","object_type":"device","payload":{"admin":true,"iat":1701705936,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM2fQ.95uGtOMs7FLOXZlHGOydXWm6wuJoacoj4qol5WDhERk"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8? 200 14ms","method":"GET","requestID":"f60cf570-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576? 200 13ms","method":"GET","requestID":"f60d4390-92be-11ee-b645-7f04f10d7150","responseTime":13,"status":200,"url":"/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"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/aacfd983-a80a-462c-a888-71a445f8057f"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.193934,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"client_addr":"127.0.0.1:41376","level":"info","msg":"Received request.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8","object_type":"device","payload":{"admin":true,"iat":1701705936,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM2fQ.95uGtOMs7FLOXZlHGOydXWm6wuJoacoj4qol5WDhERk"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:41376","level":"info","msg":"Sent response.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":2.769677,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576","object_type":"device","payload":{"admin":true,"iat":1701705936,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM2fQ.95uGtOMs7FLOXZlHGOydXWm6wuJoacoj4qol5WDhERk"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"GET /devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8? 200 14ms","method":"GET","requestID":"f64877d0-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576? 200 16ms","method":"GET","requestID":"f648c5f0-92be-11ee-b645-7f04f10d7150","responseTime":16,"status":200,"url":"/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"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":"a64baac6-9328-445c-9e9a-fba97f7aa8b4"},{"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":"e903c81d-076e-43fe-b430-6fcae2becff1"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"3b25bc1a-2713-48c6-9955-f24ee3357edf"}]},"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/810ead67-d84e-4d09-9bcc-b96f6944cdd8"},{"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/bafe992d-1dbd-4471-8849-8ccb6dc6c576"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":1.021574,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:36Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705936,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM2fQ.95uGtOMs7FLOXZlHGOydXWm6wuJoacoj4qol5WDhERk"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Faacfd983-a80a-462c-a888-71a445f8057f#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Faacfd983-a80a-462c-a888-71a445f8057f","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"41e987ba-7561-41e3-b2a6-deca057c8851","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705936.9857423} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"09d15ce1-c4be-4614-8cf4-1220d8118555","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705936.9858224} authorization_1 | {"level":"info","message":"POST /relations/update 200 134ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":134}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"2d6fd67d-d9c2-4c7d-9025-e2ecab1591dd","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705936.9874952} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"29db43e3-2a7c-4e9a-93d1-ba7e301bc94a","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705936.9879572} authorization_1 | {"level":"info","message":"POST /relations/update 200 116ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":116}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 794ms","method":"POST","requestID":"1f92a18e4fb9d7276e30746b782d9c77","responseTime":794,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:05:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.801","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1f92a18e4fb9d7276e30746b782d9c77"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM3fQ.PE0OFPo7DFy7ZDdbvmuyBL0iw1uIEuoECU6No1YBYCM","level":"info","message":"auth send jwt","requestID":"5db81aec3eb4bde1ab0cac7bdeffa0d1"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5db81aec3eb4bde1ab0cac7bdeffa0d1","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:37Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.925201,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:37Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8","object_type":"device","payload":{"admin":true,"iat":1701705937,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM3fQ.PE0OFPo7DFy7ZDdbvmuyBL0iw1uIEuoECU6No1YBYCM"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/e5513b17-d917-47b1-a6a4-092127f4e63c'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c'"} 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 272ms","method":"POST","requestID":"f64bac20-92be-11ee-b645-7f04f10d7150","responseTime":272,"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/810ead67-d84e-4d09-9bcc-b96f6944cdd8? 200 135ms","method":"GET","requestID":"5db81aec3eb4bde1ab0cac7bdeffa0d1","responseTime":135,"status":200,"url":"/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.140","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5db81aec3eb4bde1ab0cac7bdeffa0d1"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM3fQ.PE0OFPo7DFy7ZDdbvmuyBL0iw1uIEuoECU6No1YBYCM","level":"info","message":"auth send jwt","requestID":"3e810b9193db9ffa8a6cc132980d0d0c"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3e810b9193db9ffa8a6cc132980d0d0c","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:37Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.811634,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:37Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576","object_type":"device","payload":{"admin":true,"iat":1701705937,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM3fQ.PE0OFPo7DFy7ZDdbvmuyBL0iw1uIEuoECU6No1YBYCM"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3e810b9193db9ffa8a6cc132980d0d0c"} device_1 | {"level":"info","message":"GET /devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576? 200 9ms","method":"GET","requestID":"3e810b9193db9ffa8a6cc132980d0d0c","responseTime":9,"status":200,"url":"/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576?"} device_1 | {"data":{"peerconnection":"e5513b17-d917-47b1-a6a4-092127f4e63c","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device_1 | {"data":{"peerconnection":"e5513b17-d917-47b1-a6a4-092127f4e63c","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/e5513b17-d917-47b1-a6a4-092127f4e63c' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"e5513b17-d917-47b1-a6a4-092127f4e63c","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"df62c910d748abe048a6c93e6638edb5","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"df62c910d748abe048a6c93e6638edb5","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/810ead67-d84e-4d09-9bcc-b96f6944cdd8"},{"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/bafe992d-1dbd-4471-8849-8ccb6dc6c576"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c"}}},"level":"info","message":"received a callback"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM3fQ.PE0OFPo7DFy7ZDdbvmuyBL0iw1uIEuoECU6No1YBYCM","level":"info","message":"auth send jwt","requestID":"2747aab620727b270aaaf714bb38449b"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2747aab620727b270aaaf714bb38449b","responseTime":4,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 138ms","method":"POST","requestID":"df62c910d748abe048a6c93e6638edb5","responseTime":138,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:05:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.140","http_referrer":"","http_user_agent":"node-fetch","requestID":"df62c910d748abe048a6c93e6638edb5"} device_1 | {"data":{"peerconnection":"e5513b17-d917-47b1-a6a4-092127f4e63c","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"level":"info","message":"Successfully created peerconnections for experiment"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/aacfd983-a80a-462c-a888-71a445f8057f"} device_1 | {"data":{"peerconnection":"e5513b17-d917-47b1-a6a4-092127f4e63c","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:37Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":1.537145,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:37Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f","object_type":"experiment","payload":{"admin":true,"iat":1701705937,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM3fQ.PE0OFPo7DFy7ZDdbvmuyBL0iw1uIEuoECU6No1YBYCM"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:37Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":0.958729,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:37Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c","object_type":"peerconnection","payload":{"admin":true,"iat":1701705937,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM3fQ.PE0OFPo7DFy7ZDdbvmuyBL0iw1uIEuoECU6No1YBYCM"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"e5513b17-d917-47b1-a6a4-092127f4e63c","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"98c74e4ca6a034f2dd94f2a973a8d4b4","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"98c74e4ca6a034f2dd94f2a973a8d4b4","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/810ead67-d84e-4d09-9bcc-b96f6944cdd8"},{"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/bafe992d-1dbd-4471-8849-8ccb6dc6c576"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c"}}},"level":"info","message":"received a callback"} device_1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:37Z"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","contextual_tuples":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe5513b17-d917-47b1-a6a4-092127f4e63c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f0cc6319-b3a0-45b5-b660-4df185b7fe9f","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705937.6797876} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.32931,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:37Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c","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"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe5513b17-d917-47b1-a6a4-092127f4e63c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe5513b17-d917-47b1-a6a4-092127f4e63c","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"090d0f9a-951e-45fd-a150-43d378a916ff","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705937.6809323} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f392e120-e7c6-4edf-9641-b72efc199e0e","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705937.6813006} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"GET /peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c 200 141ms","method":"GET","requestID":"f6c744c0-92be-11ee-b645-7f04f10d7150","responseTime":141,"status":200,"url":"/peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c' to 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"e5513b17-d917-47b1-a6a4-092127f4e63c","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"c12df49cabf6997df81df4c437ff6630","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"c12df49cabf6997df81df4c437ff6630","responseTime":1,"status":200,"url":"/auth"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"b866ffaf1e3a07a3002bf0b23c7e386f","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"b866ffaf1e3a07a3002bf0b23c7e386f","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/810ead67-d84e-4d09-9bcc-b96f6944cdd8"},{"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/bafe992d-1dbd-4471-8849-8ccb6dc6c576"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c"}}},"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/810ead67-d84e-4d09-9bcc-b96f6944cdd8"},{"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/bafe992d-1dbd-4471-8849-8ccb6dc6c576"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c"}}},"level":"info","message":"received a callback"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 2ms","method":"POST","requestID":"b866ffaf1e3a07a3002bf0b23c7e386f","responseTime":2,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:05:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"b866ffaf1e3a07a3002bf0b23c7e386f"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576'"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c 204 451ms","method":"DELETE","requestID":"f6af7700-92be-11ee-b645-7f04f10d7150","responseTime":451,"status":204,"url":"/peerconnections/e5513b17-d917-47b1-a6a4-092127f4e63c"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 344ms","method":"POST","requestID":"98c74e4ca6a034f2dd94f2a973a8d4b4","responseTime":344,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:05: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.348","http_referrer":"","http_user_agent":"node-fetch","requestID":"98c74e4ca6a034f2dd94f2a973a8d4b4"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 196ms","method":"POST","requestID":"c12df49cabf6997df81df4c437ff6630","responseTime":196,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:05: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.200","http_referrer":"","http_user_agent":"node-fetch","requestID":"c12df49cabf6997df81df4c437ff6630"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/aacfd983-a80a-462c-a888-71a445f8057f"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Faacfd983-a80a-462c-a888-71a445f8057f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Faacfd983-a80a-462c-a888-71a445f8057f","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"cc88dcc8-f8d9-4614-8987-47d38aa05b41","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705938.2856185} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c43a2c19-36dc-4e60-9bca-79b29895711c","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705938.2859392} authorization_1 | {"level":"info","message":"POST /relations/update 200 146ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":146}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/aacfd983-a80a-462c-a888-71a445f8057f"} gateway_1 | {"time_local":"04/Dec/2023:16:05:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/aacfd983-a80a-462c-a888-71a445f8057f HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"2.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2747aab620727b270aaaf714bb38449b"} experiment_1 | {"level":"info","message":"DELETE /experiments/aacfd983-a80a-462c-a888-71a445f8057f 204 2031ms","method":"DELETE","requestID":"2747aab620727b270aaaf714bb38449b","responseTime":2031,"status":204,"url":"/experiments/aacfd983-a80a-462c-a888-71a445f8057f"} gateway_1 | {"time_local":"04/Dec/2023:16:05:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1623","request_time":"3.341","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"ad03000806dd6ec76d383cdc610f31f7"} gateway_1 | {"time_local":"04/Dec/2023:16:05:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1625","request_time":"3.483","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"fbb26fdb07b68df305edc8341a6daa73"} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/810ead67-d84e-4d09-9bcc-b96f6944cdd8' closed"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM5fQ.Oc9mz9zpFaWvW5S-mVC60rdCX6bbj1-cBkxPoZTx08M","level":"info","message":"auth send jwt","requestID":"b47907faf368a1d2eac02792858bfcc1"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b47907faf368a1d2eac02792858bfcc1","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:39Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.799141,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:39Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705939,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM5fQ.Oc9mz9zpFaWvW5S-mVC60rdCX6bbj1-cBkxPoZTx08M"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"3172009f-6264-4d4b-82c1-32048bb1de24","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705939.2773237} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5f4f8c83-0c08-4b08-b086-cdcde30235b5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705939.277449} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/bafe992d-1dbd-4471-8849-8ccb6dc6c576' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 256ms","method":"POST","requestID":"b47907faf368a1d2eac02792858bfcc1","responseTime":256,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.266","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b47907faf368a1d2eac02792858bfcc1"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM5fQ.Oc9mz9zpFaWvW5S-mVC60rdCX6bbj1-cBkxPoZTx08M","level":"info","message":"auth send jwt","requestID":"0f17370d306444674fd160f55ff452bb"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0f17370d306444674fd160f55ff452bb","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:39Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.43778,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:39Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705939,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTM5fQ.Oc9mz9zpFaWvW5S-mVC60rdCX6bbj1-cBkxPoZTx08M"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"2c20f08e-5460-478a-9bb8-9dfdd9229e10","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705939.546119} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1f253429-8248-4e0f-a13d-cbc2bcb74310","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705939.5463064} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 140ms","method":"POST","requestID":"0f17370d306444674fd160f55ff452bb","responseTime":140,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.176","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0f17370d306444674fd160f55ff452bb"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"37d19e74be7de7e9cd2e6e3a56a5a6c6","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"37d19e74be7de7e9cd2e6e3a56a5a6c6","responseTime":1,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:05:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6/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":"37d19e74be7de7e9cd2e6e3a56a5a6c6"} device_1 | {"level":"info","message":"OPTIONS /devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6/websocket 200 1ms","method":"OPTIONS","requestID":"37d19e74be7de7e9cd2e6e3a56a5a6c6","responseTime":1,"status":200,"url":"/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQxfQ.6dmqOVLDqfjg9ANd3VpiB11pHTftna67m3CLgMIY-FY","level":"info","message":"auth send jwt","requestID":"86682225e354d4016a9a5b628bcbe93a"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"86682225e354d4016a9a5b628bcbe93a","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:41Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.140971,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:41Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6","object_type":"device","payload":{"admin":true,"iat":1701705941,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQxfQ.6dmqOVLDqfjg9ANd3VpiB11pHTftna67m3CLgMIY-FY"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"a245ec92cffa786a7358ae8880a6681a","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"a245ec92cffa786a7358ae8880a6681a","responseTime":1,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:05:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/9693e46e-1d49-4862-9332-2b9ea6e41447/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":"a245ec92cffa786a7358ae8880a6681a"} device_1 | {"level":"info","message":"OPTIONS /devices/9693e46e-1d49-4862-9332-2b9ea6e41447/websocket 200 1ms","method":"OPTIONS","requestID":"a245ec92cffa786a7358ae8880a6681a","responseTime":1,"status":200,"url":"/devices/9693e46e-1d49-4862-9332-2b9ea6e41447/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQxfQ.6dmqOVLDqfjg9ANd3VpiB11pHTftna67m3CLgMIY-FY","level":"info","message":"auth send jwt","requestID":"a89c32ef8d9b1504008807bd3f725964"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a89c32ef8d9b1504008807bd3f725964","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:41Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.873334,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:41Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9693e46e-1d49-4862-9332-2b9ea6e41447","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9693e46e-1d49-4862-9332-2b9ea6e41447","object_type":"device","payload":{"admin":true,"iat":1701705941,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQxfQ.6dmqOVLDqfjg9ANd3VpiB11pHTftna67m3CLgMIY-FY"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.151","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"86682225e354d4016a9a5b628bcbe93a"} device_1 | {"level":"info","message":"POST /devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6/websocket 200 146ms","method":"POST","requestID":"86682225e354d4016a9a5b628bcbe93a","responseTime":146,"status":200,"url":"/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6/websocket"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device_1 | {"level":"info","message":"POST /devices/9693e46e-1d49-4862-9332-2b9ea6e41447/websocket 200 248ms","method":"POST","requestID":"a89c32ef8d9b1504008807bd3f725964","responseTime":248,"status":200,"url":"/devices/9693e46e-1d49-4862-9332-2b9ea6e41447/websocket"} gateway_1 | {"time_local":"04/Dec/2023:16:05:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9693e46e-1d49-4862-9332-2b9ea6e41447/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.253","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a89c32ef8d9b1504008807bd3f725964"} device_1 | {"level":"info","message":"device 'http://localhost/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6' connected"} device_1 | {"level":"info","message":"device 'http://localhost/devices/9693e46e-1d49-4862-9332-2b9ea6e41447' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQyfQ.habW4dv1RtUs3tKRSmu4guECHbWJX2Y1A_Edk-1kP-8","level":"info","message":"auth send jwt","requestID":"e2846edbd2594b08453911e38fd2f3a0"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e2846edbd2594b08453911e38fd2f3a0","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:42Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.376212,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:42Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6","object_type":"device","payload":{"admin":true,"iat":1701705942,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQyfQ.habW4dv1RtUs3tKRSmu4guECHbWJX2Y1A_Edk-1kP-8"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6? 200 13ms","method":"GET","requestID":"e2846edbd2594b08453911e38fd2f3a0","responseTime":13,"status":200,"url":"/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e2846edbd2594b08453911e38fd2f3a0"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQyfQ.habW4dv1RtUs3tKRSmu4guECHbWJX2Y1A_Edk-1kP-8","level":"info","message":"auth send jwt","requestID":"978f37388a9dbd397d6e2b1022adb55f"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"978f37388a9dbd397d6e2b1022adb55f","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:42Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.074319,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:42Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9693e46e-1d49-4862-9332-2b9ea6e41447","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9693e46e-1d49-4862-9332-2b9ea6e41447","object_type":"device","payload":{"admin":true,"iat":1701705942,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQyfQ.habW4dv1RtUs3tKRSmu4guECHbWJX2Y1A_Edk-1kP-8"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/9693e46e-1d49-4862-9332-2b9ea6e41447? 200 11ms","method":"GET","requestID":"978f37388a9dbd397d6e2b1022adb55f","responseTime":11,"status":200,"url":"/devices/9693e46e-1d49-4862-9332-2b9ea6e41447?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9693e46e-1d49-4862-9332-2b9ea6e41447? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"978f37388a9dbd397d6e2b1022adb55f"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQyfQ.habW4dv1RtUs3tKRSmu4guECHbWJX2Y1A_Edk-1kP-8","level":"info","message":"auth send jwt","requestID":"438e4e56743d7fca929fa3edf0dc72f0"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"438e4e56743d7fca929fa3edf0dc72f0","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:54572","level":"info","msg":"Received request.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:42Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":0.823898,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:42Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705942,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQyfQ.habW4dv1RtUs3tKRSmu4guECHbWJX2Y1A_Edk-1kP-8"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"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:54572","level":"info","msg":"Received request.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:42Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.332865,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:42Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6","object_type":"device","payload":{"admin":true,"iat":1701705942,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQyfQ.habW4dv1RtUs3tKRSmu4guECHbWJX2Y1A_Edk-1kP-8"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization_1 | {"client_addr":"127.0.0.1:42312","level":"info","msg":"Received request.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:42Z"} authorization_1 | {"client_addr":"127.0.0.1:42312","level":"info","msg":"Sent response.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.02568,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:42Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9693e46e-1d49-4862-9332-2b9ea6e41447","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9693e46e-1d49-4862-9332-2b9ea6e41447","object_type":"device","payload":{"admin":true,"iat":1701705942,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQyfQ.habW4dv1RtUs3tKRSmu4guECHbWJX2Y1A_Edk-1kP-8"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"GET /devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6? 200 14ms","method":"GET","requestID":"f9a53760-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/9693e46e-1d49-4862-9332-2b9ea6e41447? 200 18ms","method":"GET","requestID":"f9a58580-92be-11ee-b645-7f04f10d7150","responseTime":18,"status":200,"url":"/devices/9693e46e-1d49-4862-9332-2b9ea6e41447?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"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/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:43Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.854588,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:43Z"} authorization_1 | {"client_addr":"127.0.0.1:42312","level":"info","msg":"Received request.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:43Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6","object_type":"device","payload":{"admin":true,"iat":1701705942,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQyfQ.habW4dv1RtUs3tKRSmu4guECHbWJX2Y1A_Edk-1kP-8"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:42312","level":"info","msg":"Sent response.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.031301,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:43Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9693e46e-1d49-4862-9332-2b9ea6e41447","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9693e46e-1d49-4862-9332-2b9ea6e41447","object_type":"device","payload":{"admin":true,"iat":1701705942,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQyfQ.habW4dv1RtUs3tKRSmu4guECHbWJX2Y1A_Edk-1kP-8"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6? 200 14ms","method":"GET","requestID":"fa092950-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/9693e46e-1d49-4862-9332-2b9ea6e41447? 200 13ms","method":"GET","requestID":"fa097770-92be-11ee-b645-7f04f10d7150","responseTime":13,"status":200,"url":"/devices/9693e46e-1d49-4862-9332-2b9ea6e41447?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"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":"607f782c-c6b2-4196-8043-cb34610089f2"},{"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":"1f3f52c5-25d2-4e5b-864c-4ab51189a136"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"a4ecea1b-a908-4659-8c1e-fa81a61797eb"}]},"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/9693e46e-1d49-4862-9332-2b9ea6e41447"},{"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/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:43Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.888173,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:43Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705942,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQyfQ.habW4dv1RtUs3tKRSmu4guECHbWJX2Y1A_Edk-1kP-8"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F57f9339e-dbca-4cba-b5f7-6c3d33231c5a#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F57f9339e-dbca-4cba-b5f7-6c3d33231c5a","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"41fe8cb1-4c77-4f8a-b1a5-f3227ba8fb02","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705943.27373} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"41fadd6d-e4cc-4bb1-b5db-eb3f55dec771","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705943.2743456} authorization_1 | {"level":"info","message":"POST /relations/update 200 126ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":126}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"c9939c29-d894-412e-8069-9ed20fc042d0","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705943.2766314} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7eadfbf1-7e70-46c8-8599-270e597bd635","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705943.276914} authorization_1 | {"level":"info","message":"POST /relations/update 200 112ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":112}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 1055ms","method":"POST","requestID":"438e4e56743d7fca929fa3edf0dc72f0","responseTime":1055,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:05:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"1.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"438e4e56743d7fca929fa3edf0dc72f0"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQzfQ.PxxmS2YzjlZiUdkC2d1nv4hXoI920yfh-vxRpfDVszw","level":"info","message":"auth send jwt","requestID":"dd5f093e47ab7b7b453f204b6f59ee61"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"dd5f093e47ab7b7b453f204b6f59ee61","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:43Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.948678,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:43Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6","object_type":"device","payload":{"admin":true,"iat":1701705943,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQzfQ.PxxmS2YzjlZiUdkC2d1nv4hXoI920yfh-vxRpfDVszw"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"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/56b3fa95-ee57-477d-82fa-d7d6d3881142'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/56b3fa95-ee57-477d-82fa-d7d6d3881142'"} 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 259ms","method":"POST","requestID":"fa0be870-92be-11ee-b645-7f04f10d7150","responseTime":259,"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/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6? 200 124ms","method":"GET","requestID":"dd5f093e47ab7b7b453f204b6f59ee61","responseTime":124,"status":200,"url":"/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.129","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dd5f093e47ab7b7b453f204b6f59ee61"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQzfQ.PxxmS2YzjlZiUdkC2d1nv4hXoI920yfh-vxRpfDVszw","level":"info","message":"auth send jwt","requestID":"31bbe6c9af27cb129c4e822800aa83a9"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"31bbe6c9af27cb129c4e822800aa83a9","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:43Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.948726,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:43Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9693e46e-1d49-4862-9332-2b9ea6e41447","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/9693e46e-1d49-4862-9332-2b9ea6e41447","object_type":"device","payload":{"admin":true,"iat":1701705943,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQzfQ.PxxmS2YzjlZiUdkC2d1nv4hXoI920yfh-vxRpfDVszw"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9693e46e-1d49-4862-9332-2b9ea6e41447? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"31bbe6c9af27cb129c4e822800aa83a9"} device_1 | {"level":"info","message":"GET /devices/9693e46e-1d49-4862-9332-2b9ea6e41447? 200 9ms","method":"GET","requestID":"31bbe6c9af27cb129c4e822800aa83a9","responseTime":9,"status":200,"url":"/devices/9693e46e-1d49-4862-9332-2b9ea6e41447?"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/56b3fa95-ee57-477d-82fa-d7d6d3881142' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"56b3fa95-ee57-477d-82fa-d7d6d3881142","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"0f3241348a406c3003fa56a18db0e487","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"0f3241348a406c3003fa56a18db0e487","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":"connecting","url":"http://localhost/devices/9693e46e-1d49-4862-9332-2b9ea6e41447"},{"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/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/56b3fa95-ee57-477d-82fa-d7d6d3881142"}}},"level":"info","message":"received a callback"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQzfQ.PxxmS2YzjlZiUdkC2d1nv4hXoI920yfh-vxRpfDVszw","level":"info","message":"auth send jwt","requestID":"12506fb776a37538fb1e5155e3c45ed2"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"12506fb776a37538fb1e5155e3c45ed2","responseTime":4,"status":200,"url":"/auth"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"level":"info","message":"Successfully created peerconnections for experiment"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:43Z"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 61ms","method":"POST","requestID":"0f3241348a406c3003fa56a18db0e487","responseTime":61,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:05: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.064","http_referrer":"","http_user_agent":"node-fetch","requestID":"0f3241348a406c3003fa56a18db0e487"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":1.79349,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:43Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a","object_type":"experiment","payload":{"admin":true,"iat":1701705943,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQzfQ.PxxmS2YzjlZiUdkC2d1nv4hXoI920yfh-vxRpfDVszw"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:43Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":1.254424,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:43Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/56b3fa95-ee57-477d-82fa-d7d6d3881142","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/56b3fa95-ee57-477d-82fa-d7d6d3881142","object_type":"peerconnection","payload":{"admin":true,"iat":1701705943,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQzfQ.PxxmS2YzjlZiUdkC2d1nv4hXoI920yfh-vxRpfDVszw"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"peerconnection":"56b3fa95-ee57-477d-82fa-d7d6d3881142","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F56b3fa95-ee57-477d-82fa-d7d6d3881142': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F56b3fa95-ee57-477d-82fa-d7d6d3881142","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"b576742a-cd84-40bc-b494-ea6b3a904728","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705943.80139} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8bc846b9-5525-4e5d-83a9-9aefe707e675","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705943.8016355} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"data":{"peerconnection":"56b3fa95-ee57-477d-82fa-d7d6d3881142","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/56b3fa95-ee57-477d-82fa-d7d6d3881142 204 337ms","method":"DELETE","requestID":"fa5f86b0-92be-11ee-b645-7f04f10d7150","responseTime":337,"status":204,"url":"/peerconnections/56b3fa95-ee57-477d-82fa-d7d6d3881142"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/9693e46e-1d49-4862-9332-2b9ea6e41447'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/9693e46e-1d49-4862-9332-2b9ea6e41447'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6'"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F57f9339e-dbca-4cba-b5f7-6c3d33231c5a': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F57f9339e-dbca-4cba-b5f7-6c3d33231c5a","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"5b81f4d4-91ba-4709-b77c-e5e9df578cc0","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705944.2974827} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"776f412b-3d9b-4246-916a-1cfdcf7b4052","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705944.297793} authorization_1 | {"level":"info","message":"POST /relations/update 200 122ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":122}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"} gateway_1 | {"time_local":"04/Dec/2023:16:05:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.318","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"12506fb776a37538fb1e5155e3c45ed2"} experiment_1 | {"level":"info","message":"DELETE /experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a 204 1314ms","method":"DELETE","requestID":"12506fb776a37538fb1e5155e3c45ed2","responseTime":1314,"status":204,"url":"/experiments/57f9339e-dbca-4cba-b5f7-6c3d33231c5a"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ0fQ.qEcdD1WnOvOu_xIBZUR5qrG3PmFozJYcvh7xaKCXiOw","level":"info","message":"auth send jwt","requestID":"594b359ac7b1b8d507a43711613ada29"} authentication_1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"594b359ac7b1b8d507a43711613ada29","responseTime":6,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:05:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1551","request_time":"3.096","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c7c5365c7c47c0a7f02a753dc9ca23f4"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:44Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.687005,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:44Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705944,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ0fQ.qEcdD1WnOvOu_xIBZUR5qrG3PmFozJYcvh7xaKCXiOw"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} gateway_1 | {"time_local":"04/Dec/2023:16:05:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1554","request_time":"3.228","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0420fbb59cab2998fbcfea87cbc4875f"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"5fc06696-d16e-4ba8-a525-06ecac26c96b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705944.9897401} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"453ac1f6-77fd-48da-a38d-b275a6889825","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705944.9898007} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/9693e46e-1d49-4862-9332-2b9ea6e41447' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 342ms","method":"POST","requestID":"594b359ac7b1b8d507a43711613ada29","responseTime":342,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.352","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"594b359ac7b1b8d507a43711613ada29"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ1fQ.LTmcDKC3X1-UflFxNnZOiv6kgmOTGAlMvw3wmDXbjWk","level":"info","message":"auth send jwt","requestID":"b7f06b5bf001c0a50e4b2d5e7711ce9c"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b7f06b5bf001c0a50e4b2d5e7711ce9c","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:45Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.709599,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:45Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705945,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ1fQ.LTmcDKC3X1-UflFxNnZOiv6kgmOTGAlMvw3wmDXbjWk"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"4262367a-a344-4b5e-a58a-1a47120251af","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705945.3436472} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"20698af7-9855-4d63-a9fa-80a00e981b11","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705945.3437667} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/54cd7780-f800-46ab-8f2f-f17a7cfbfdc6' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 299ms","method":"POST","requestID":"b7f06b5bf001c0a50e4b2d5e7711ce9c","responseTime":299,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.335","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b7f06b5bf001c0a50e4b2d5e7711ce9c"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"fd7c8e32ccc0ee476f3352414beb5017","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"fd7c8e32ccc0ee476f3352414beb5017","responseTime":1,"status":200,"url":"/auth"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"c8d493e40557afb45036670e6dee470c","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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)"} gateway_1 | {"time_local":"04/Dec/2023:16:05:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8/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":"fd7c8e32ccc0ee476f3352414beb5017"} authentication_1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c8d493e40557afb45036670e6dee470c","responseTime":1,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"OPTIONS /devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8/websocket 200 1ms","method":"OPTIONS","requestID":"fd7c8e32ccc0ee476f3352414beb5017","responseTime":1,"status":200,"url":"/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8/websocket"} gateway_1 | {"time_local":"04/Dec/2023:16:05:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/bf710690-ccca-496f-ba5e-f5981bb2e269/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.006","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c8d493e40557afb45036670e6dee470c"} device_1 | {"level":"info","message":"OPTIONS /devices/bf710690-ccca-496f-ba5e-f5981bb2e269/websocket 200 1ms","method":"OPTIONS","requestID":"c8d493e40557afb45036670e6dee470c","responseTime":1,"status":200,"url":"/devices/bf710690-ccca-496f-ba5e-f5981bb2e269/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ3fQ.oOK9XQT-jgTecgTOw0ib2qSKYN_JJupzXoehGkvifBc","level":"info","message":"auth send jwt","requestID":"b1bd45d5257368315b65e8d54cb2b753"} authentication_1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"b1bd45d5257368315b65e8d54cb2b753","responseTime":7,"status":200,"url":"/auth"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ3fQ.oOK9XQT-jgTecgTOw0ib2qSKYN_JJupzXoehGkvifBc","level":"info","message":"auth send jwt","requestID":"71988953224a718681a6b64448389525"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication_1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"71988953224a718681a6b64448389525","responseTime":7,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:47Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.820836,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:47Z"} authorization_1 | {"client_addr":"127.0.0.1:42312","level":"info","msg":"Received request.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:47Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8","object_type":"device","payload":{"admin":true,"iat":1701705947,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ3fQ.oOK9XQT-jgTecgTOw0ib2qSKYN_JJupzXoehGkvifBc"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"client_addr":"127.0.0.1:42312","level":"info","msg":"Sent response.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.89297,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:47Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf710690-ccca-496f-ba5e-f5981bb2e269","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bf710690-ccca-496f-ba5e-f5981bb2e269","object_type":"device","payload":{"admin":true,"iat":1701705947,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ3fQ.oOK9XQT-jgTecgTOw0ib2qSKYN_JJupzXoehGkvifBc"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/bf710690-ccca-496f-ba5e-f5981bb2e269/websocket 200 13ms","method":"POST","requestID":"71988953224a718681a6b64448389525","responseTime":13,"status":200,"url":"/devices/bf710690-ccca-496f-ba5e-f5981bb2e269/websocket"} gateway_1 | {"time_local":"04/Dec/2023:16:05:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/bf710690-ccca-496f-ba5e-f5981bb2e269/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","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":"71988953224a718681a6b64448389525"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.194","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b1bd45d5257368315b65e8d54cb2b753"} device_1 | {"level":"info","message":"POST /devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8/websocket 200 186ms","method":"POST","requestID":"b1bd45d5257368315b65e8d54cb2b753","responseTime":186,"status":200,"url":"/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/bf710690-ccca-496f-ba5e-f5981bb2e269' connected"} device_1 | {"level":"info","message":"device 'http://localhost/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ4fQ.lPJrzcGhuZE22JTG1GbDV27HKrNn9KZ48RxW2xHX0Oc","level":"info","message":"auth send jwt","requestID":"7259e7390d7180f4a469952e0d547da1"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7259e7390d7180f4a469952e0d547da1","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.227335,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8","object_type":"device","payload":{"admin":true,"iat":1701705948,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ4fQ.lPJrzcGhuZE22JTG1GbDV27HKrNn9KZ48RxW2xHX0Oc"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8? 200 12ms","method":"GET","requestID":"7259e7390d7180f4a469952e0d547da1","responseTime":12,"status":200,"url":"/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7259e7390d7180f4a469952e0d547da1"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ4fQ.lPJrzcGhuZE22JTG1GbDV27HKrNn9KZ48RxW2xHX0Oc","level":"info","message":"auth send jwt","requestID":"45dce313862dd1eb261aaa2c9c76cce7"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"45dce313862dd1eb261aaa2c9c76cce7","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.19235,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf710690-ccca-496f-ba5e-f5981bb2e269","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bf710690-ccca-496f-ba5e-f5981bb2e269","object_type":"device","payload":{"admin":true,"iat":1701705948,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ4fQ.lPJrzcGhuZE22JTG1GbDV27HKrNn9KZ48RxW2xHX0Oc"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bf710690-ccca-496f-ba5e-f5981bb2e269? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"45dce313862dd1eb261aaa2c9c76cce7"} device_1 | {"level":"info","message":"GET /devices/bf710690-ccca-496f-ba5e-f5981bb2e269? 200 11ms","method":"GET","requestID":"45dce313862dd1eb261aaa2c9c76cce7","responseTime":11,"status":200,"url":"/devices/bf710690-ccca-496f-ba5e-f5981bb2e269?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ4fQ.lPJrzcGhuZE22JTG1GbDV27HKrNn9KZ48RxW2xHX0Oc","level":"info","message":"auth send jwt","requestID":"d8227ef07408cb9c5bfff4c00c3ab5e6"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d8227ef07408cb9c5bfff4c00c3ab5e6","responseTime":5,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":0.839683,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705948,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ4fQ.lPJrzcGhuZE22JTG1GbDV27HKrNn9KZ48RxW2xHX0Oc"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"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:54572","level":"info","msg":"Received request.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":2.024027,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"client_addr":"127.0.0.1:42312","level":"info","msg":"Received request.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8","object_type":"device","payload":{"admin":true,"iat":1701705948,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ4fQ.lPJrzcGhuZE22JTG1GbDV27HKrNn9KZ48RxW2xHX0Oc"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization_1 | {"client_addr":"127.0.0.1:42312","level":"info","msg":"Sent response.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.539741,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf710690-ccca-496f-ba5e-f5981bb2e269","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bf710690-ccca-496f-ba5e-f5981bb2e269","object_type":"device","payload":{"admin":true,"iat":1701705948,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ4fQ.lPJrzcGhuZE22JTG1GbDV27HKrNn9KZ48RxW2xHX0Oc"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8? 200 17ms","method":"GET","requestID":"fd2620c0-92be-11ee-b645-7f04f10d7150","responseTime":17,"status":200,"url":"/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/bf710690-ccca-496f-ba5e-f5981bb2e269? 200 15ms","method":"GET","requestID":"fd2695f0-92be-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/bf710690-ccca-496f-ba5e-f5981bb2e269?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"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/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.587511,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8","object_type":"device","payload":{"admin":true,"iat":1701705948,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ4fQ.lPJrzcGhuZE22JTG1GbDV27HKrNn9KZ48RxW2xHX0Oc"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:42312","level":"info","msg":"Received request.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"client_addr":"127.0.0.1:42312","level":"info","msg":"Sent response.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.158682,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf710690-ccca-496f-ba5e-f5981bb2e269","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bf710690-ccca-496f-ba5e-f5981bb2e269","object_type":"device","payload":{"admin":true,"iat":1701705948,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ4fQ.lPJrzcGhuZE22JTG1GbDV27HKrNn9KZ48RxW2xHX0Oc"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"GET /devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8? 200 12ms","method":"GET","requestID":"fd5ee400-92be-11ee-b645-7f04f10d7150","responseTime":12,"status":200,"url":"/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/bf710690-ccca-496f-ba5e-f5981bb2e269? 200 14ms","method":"GET","requestID":"fd5f0b10-92be-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/bf710690-ccca-496f-ba5e-f5981bb2e269?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"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":"0acf74b0-e560-4128-a61e-a4563f3ddeb6"},{"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":"55fe9812-9c3f-4466-bf4f-8d059b7aa946"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"c0beb76c-cf87-461b-8200-32b3056965c6"}]},"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/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8"},{"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/bf710690-ccca-496f-ba5e-f5981bb2e269"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":1.071339,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705948,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ4fQ.lPJrzcGhuZE22JTG1GbDV27HKrNn9KZ48RxW2xHX0Oc"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F76842f0d-b88d-41f0-bc5a-b0f542337c7d#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F76842f0d-b88d-41f0-bc5a-b0f542337c7d","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"cfd8e93f-32f1-4fdd-bd91-0581ccf1e337","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705948.8936284} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"477a0f09-ea60-4702-a8cc-759689a65d15","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705948.8939087} authorization_1 | {"level":"info","message":"POST /relations/update 200 152ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":152}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"0dad77cf-9325-4021-b480-363b3918ee1d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705948.895712} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1070217a-de11-4e2f-bb34-8f7a82c6fd5f","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705948.8961835} authorization_1 | {"level":"info","message":"POST /relations/update 200 135ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":135}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 791ms","method":"POST","requestID":"d8227ef07408cb9c5bfff4c00c3ab5e6","responseTime":791,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:05:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.799","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d8227ef07408cb9c5bfff4c00c3ab5e6"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ4fQ.lPJrzcGhuZE22JTG1GbDV27HKrNn9KZ48RxW2xHX0Oc","level":"info","message":"auth send jwt","requestID":"c2d16bcd72d59b4ee06fc064fafd0c9a"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c2d16bcd72d59b4ee06fc064fafd0c9a","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.879869,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:48Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8","object_type":"device","payload":{"admin":true,"iat":1701705948,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ4fQ.lPJrzcGhuZE22JTG1GbDV27HKrNn9KZ48RxW2xHX0Oc"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/a858fac6-881f-4a44-8ce8-115841f6f6b8'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a858fac6-881f-4a44-8ce8-115841f6f6b8'"} 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 290ms","method":"POST","requestID":"fd61ca30-92be-11ee-b645-7f04f10d7150","responseTime":290,"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":"04/Dec/2023:16:05:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.137","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c2d16bcd72d59b4ee06fc064fafd0c9a"} device_1 | {"level":"info","message":"GET /devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8? 200 132ms","method":"GET","requestID":"c2d16bcd72d59b4ee06fc064fafd0c9a","responseTime":132,"status":200,"url":"/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ5fQ.0qm0NHgZGtedsXJ6et13onh7wmmbDjNRtrKIABW-G3k","level":"info","message":"auth send jwt","requestID":"3007d7b40b52fe751e968d786079db2d"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3007d7b40b52fe751e968d786079db2d","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:49Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.050125,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:49Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf710690-ccca-496f-ba5e-f5981bb2e269","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/bf710690-ccca-496f-ba5e-f5981bb2e269","object_type":"device","payload":{"admin":true,"iat":1701705949,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ5fQ.0qm0NHgZGtedsXJ6et13onh7wmmbDjNRtrKIABW-G3k"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bf710690-ccca-496f-ba5e-f5981bb2e269? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3007d7b40b52fe751e968d786079db2d"} device_1 | {"level":"info","message":"GET /devices/bf710690-ccca-496f-ba5e-f5981bb2e269? 200 10ms","method":"GET","requestID":"3007d7b40b52fe751e968d786079db2d","responseTime":10,"status":200,"url":"/devices/bf710690-ccca-496f-ba5e-f5981bb2e269?"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a858fac6-881f-4a44-8ce8-115841f6f6b8' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"a858fac6-881f-4a44-8ce8-115841f6f6b8","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"94fb9f545c4606e299fc5f31699d12eb","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"94fb9f545c4606e299fc5f31699d12eb","responseTime":2,"status":200,"url":"/auth"} experiment_1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8"},{"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/bf710690-ccca-496f-ba5e-f5981bb2e269"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a858fac6-881f-4a44-8ce8-115841f6f6b8"}}},"level":"info","message":"received a callback"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"level":"info","message":"Successfully created peerconnections for experiment"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 79ms","method":"POST","requestID":"94fb9f545c4606e299fc5f31699d12eb","responseTime":79,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:05: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.084","http_referrer":"","http_user_agent":"node-fetch","requestID":"94fb9f545c4606e299fc5f31699d12eb"} device_1 | {"data":{"peerconnection":"a858fac6-881f-4a44-8ce8-115841f6f6b8","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ5fQ.0qm0NHgZGtedsXJ6et13onh7wmmbDjNRtrKIABW-G3k","level":"info","message":"auth send jwt","requestID":"21683991920e3499851ba2d0f7054ae7"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"21683991920e3499851ba2d0f7054ae7","responseTime":3,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:49Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":0.844096,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:49Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d","object_type":"experiment","payload":{"admin":true,"iat":1701705949,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ5fQ.0qm0NHgZGtedsXJ6et13onh7wmmbDjNRtrKIABW-G3k"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:49Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":0.677832,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:49Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a858fac6-881f-4a44-8ce8-115841f6f6b8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/a858fac6-881f-4a44-8ce8-115841f6f6b8","object_type":"peerconnection","payload":{"admin":true,"iat":1701705949,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTQ5fQ.0qm0NHgZGtedsXJ6et13onh7wmmbDjNRtrKIABW-G3k"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"data":{"peerconnection":"a858fac6-881f-4a44-8ce8-115841f6f6b8","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa858fac6-881f-4a44-8ce8-115841f6f6b8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa858fac6-881f-4a44-8ce8-115841f6f6b8","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"2adb22d1-80d0-4396-93e4-ee53a152f518","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705949.5807364} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"338d3f92-09a0-4e6a-b6be-a4386123a1d9","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705949.5810392} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a858fac6-881f-4a44-8ce8-115841f6f6b8' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"a858fac6-881f-4a44-8ce8-115841f6f6b8","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"ed6d85caa1b66439dded064ae5372cf3","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"ed6d85caa1b66439dded064ae5372cf3","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/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8"},{"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/bf710690-ccca-496f-ba5e-f5981bb2e269"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/a858fac6-881f-4a44-8ce8-115841f6f6b8"}}},"level":"info","message":"received a callback"} device_1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:49Z"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","contextual_tuples":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa858fac6-881f-4a44-8ce8-115841f6f6b8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6f50714d-cf35-4596-9b50-6c3026dc21d6","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705949.7159476} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.634986,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:49Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a858fac6-881f-4a44-8ce8-115841f6f6b8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a858fac6-881f-4a44-8ce8-115841f6f6b8","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/a858fac6-881f-4a44-8ce8-115841f6f6b8 204 365ms","method":"DELETE","requestID":"fdce2090-92be-11ee-b645-7f04f10d7150","responseTime":366,"status":204,"url":"/peerconnections/a858fac6-881f-4a44-8ce8-115841f6f6b8"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8'"} device_1 | {"data":{"error":"MissingEntityError","message":"The requested Peerconnection does not exist in the database","method":"GET","stack":"MissingEntityError: The requested Peerconnection does not exist in the database\n at PeerconnectionRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async Object.getPeerconnectionsByPeerconnectionId (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/peerconnections/peerconnection/get.js:13:33)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:351:28","status":404,"url":"/peerconnections/a858fac6-881f-4a44-8ce8-115841f6f6b8"},"level":"error","message":"An error occurred during the handling of a request","requestID":"fdf35bd0-92be-11ee-b645-7f04f10d7150"} device_1 | {"level":"info","message":"GET /peerconnections/a858fac6-881f-4a44-8ce8-115841f6f6b8 404 125ms","method":"GET","requestID":"fdf35bd0-92be-11ee-b645-7f04f10d7150","responseTime":125,"status":404,"url":"/peerconnections/a858fac6-881f-4a44-8ce8-115841f6f6b8"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/bf710690-ccca-496f-ba5e-f5981bb2e269'"} experiment_1 | {"data":{"error":"UnsuccessfulRequestError","message":"Server returned response with status 404","method":"POST","stack":"UnsuccessfulRequestError: Server returned response with status 404\n at Client.getPeerconnection (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/clients/device/client.js:870:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async handlePeerconnectionStatusChangedEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/peerconnectionStatusChanged.js:41:22)\n at async handleEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/index.js:20:20)\n at async file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/index.js:20:39","status":500,"url":"/callbacks/experiment"},"level":"error","message":"An error occurred during the handling of a request","requestID":"ed6d85caa1b66439dded064ae5372cf3"} gateway_1 | {"time_local":"04/Dec/2023:16:05:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "500","body_bytes_sent":"89","request_time":"0.138","http_referrer":"","http_user_agent":"node-fetch","requestID":"ed6d85caa1b66439dded064ae5372cf3"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 500 135ms","method":"POST","requestID":"ed6d85caa1b66439dded064ae5372cf3","responseTime":135,"status":500,"url":"/callbacks/experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F76842f0d-b88d-41f0-bc5a-b0f542337c7d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F76842f0d-b88d-41f0-bc5a-b0f542337c7d","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"76797ad0-fd71-498d-b36f-3359f8b6351d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705950.0760329} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"00cad5c8-8939-4815-962d-4c9d8d4fde43","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705950.0764377} authorization_1 | {"level":"info","message":"POST /relations/update 200 113ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":113}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"} experiment_1 | {"level":"info","message":"DELETE /experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d 204 1357ms","method":"DELETE","requestID":"21683991920e3499851ba2d0f7054ae7","responseTime":1357,"status":204,"url":"/experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d"} gateway_1 | {"time_local":"04/Dec/2023:16:05:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/76842f0d-b88d-41f0-bc5a-b0f542337c7d HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.361","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"21683991920e3499851ba2d0f7054ae7"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUwfQ.3_kwqkPkx0C7FTw5R5F4Ic5OEEgW3v2BGBlMYKKE_sY","level":"info","message":"auth send jwt","requestID":"8c5ea5792444720a1a08b594f17c17c1"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8c5ea5792444720a1a08b594f17c17c1","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} gateway_1 | {"time_local":"04/Dec/2023:16:05:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1554","request_time":"3.064","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b66d26e33e6c30472fe0b472f2508341"} gateway_1 | {"time_local":"04/Dec/2023:16:05:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1552","request_time":"3.235","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"71da4c6c937415c84136d222f4126fda"} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/bf710690-ccca-496f-ba5e-f5981bb2e269' closed"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:50Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.925779,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:50Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705950,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUwfQ.3_kwqkPkx0C7FTw5R5F4Ic5OEEgW3v2BGBlMYKKE_sY"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"678e209e-1833-421d-b20e-bc8aa42e3602","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705950.8346686} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"75bc8122-de61-4d47-8641-de617cde9243","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705950.834921} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/939cd4e9-2cfb-46ff-b3d1-5d118d4d1be8' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 309ms","method":"POST","requestID":"8c5ea5792444720a1a08b594f17c17c1","responseTime":309,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.317","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8c5ea5792444720a1a08b594f17c17c1"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUxfQ.qjE0HroAvQoCI1pHaO9JuhdnUlfwPJpAVVc3e05fGEM","level":"info","message":"auth send jwt","requestID":"8ff0c9ae47805f5691bc42a0de0776e8"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8ff0c9ae47805f5691bc42a0de0776e8","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:51Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.183003,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:51Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705951,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUxfQ.qjE0HroAvQoCI1pHaO9JuhdnUlfwPJpAVVc3e05fGEM"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"4741aa52-09ce-439e-8452-b8bbe6ac976b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705951.1504555} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cd507a11-bf48-40a0-bc54-84d46ab49466","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705951.1506734} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 134ms","method":"POST","requestID":"8ff0c9ae47805f5691bc42a0de0776e8","responseTime":134,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.171","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8ff0c9ae47805f5691bc42a0de0776e8"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUxfQ.qjE0HroAvQoCI1pHaO9JuhdnUlfwPJpAVVc3e05fGEM","level":"info","message":"auth send jwt","requestID":"f1d30ed3ce43635f47b74cc206155e51"} authentication_1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f1d30ed3ce43635f47b74cc206155e51","responseTime":2,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:51Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.825914,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:51Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb","object_type":"device","payload":{"admin":true,"iat":1701705951,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUxfQ.qjE0HroAvQoCI1pHaO9JuhdnUlfwPJpAVVc3e05fGEM"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/63e55dbe-2f59-4077-9b0f-9182844079fb HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.146","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"f1d30ed3ce43635f47b74cc206155e51"} device_1 | {"level":"info","message":"PATCH /devices/63e55dbe-2f59-4077-9b0f-9182844079fb 200 143ms","method":"PATCH","requestID":"f1d30ed3ce43635f47b74cc206155e51","responseTime":143,"status":200,"url":"/devices/63e55dbe-2f59-4077-9b0f-9182844079fb"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUxfQ.qjE0HroAvQoCI1pHaO9JuhdnUlfwPJpAVVc3e05fGEM","level":"info","message":"auth send jwt","requestID":"4c0b3d1974ff6d1ea264f547a5769928"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4c0b3d1974ff6d1ea264f547a5769928","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:51Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.092375,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:51Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb","object_type":"device","payload":{"admin":true,"iat":1701705951,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUxfQ.qjE0HroAvQoCI1pHaO9JuhdnUlfwPJpAVVc3e05fGEM"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/63e55dbe-2f59-4077-9b0f-9182844079fb/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.123","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"4c0b3d1974ff6d1ea264f547a5769928"} device_1 | {"level":"info","message":"POST /devices/63e55dbe-2f59-4077-9b0f-9182844079fb/websocket 200 117ms","method":"POST","requestID":"4c0b3d1974ff6d1ea264f547a5769928","responseTime":117,"status":200,"url":"/devices/63e55dbe-2f59-4077-9b0f-9182844079fb/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb' connected"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"8ef7e88b0fd9ddda73e419326f6c5211","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"8ef7e88b0fd9ddda73e419326f6c5211","responseTime":1,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:05:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/5b784b43-7a09-4cef-a8d7-694cc27b687d/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":"8ef7e88b0fd9ddda73e419326f6c5211"} device_1 | {"level":"info","message":"OPTIONS /devices/5b784b43-7a09-4cef-a8d7-694cc27b687d/websocket 200 1ms","method":"OPTIONS","requestID":"8ef7e88b0fd9ddda73e419326f6c5211","responseTime":1,"status":200,"url":"/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUzfQ._3TOXdDya5GgnG-YVJNxbE1M1CY4NMPWSBCEo52jWmI","level":"info","message":"auth send jwt","requestID":"9ef1d2fee90abd14a832ce0b9f870e19"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9ef1d2fee90abd14a832ce0b9f870e19","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:53Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.301603,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:53Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d","object_type":"device","payload":{"admin":true,"iat":1701705953,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUzfQ._3TOXdDya5GgnG-YVJNxbE1M1CY4NMPWSBCEo52jWmI"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device_1 | {"level":"info","message":"POST /devices/5b784b43-7a09-4cef-a8d7-694cc27b687d/websocket 200 143ms","method":"POST","requestID":"9ef1d2fee90abd14a832ce0b9f870e19","responseTime":143,"status":200,"url":"/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d/websocket"} gateway_1 | {"time_local":"04/Dec/2023:16:05:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5b784b43-7a09-4cef-a8d7-694cc27b687d/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.148","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9ef1d2fee90abd14a832ce0b9f870e19"} device_1 | {"level":"info","message":"device 'http://localhost/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUzfQ._3TOXdDya5GgnG-YVJNxbE1M1CY4NMPWSBCEo52jWmI","level":"info","message":"auth send jwt","requestID":"5ff851f58ba109216eaf958f9404723a"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5ff851f58ba109216eaf958f9404723a","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:53Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.111472,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:53Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d","object_type":"device","payload":{"admin":true,"iat":1701705953,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUzfQ._3TOXdDya5GgnG-YVJNxbE1M1CY4NMPWSBCEo52jWmI"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5b784b43-7a09-4cef-a8d7-694cc27b687d? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5ff851f58ba109216eaf958f9404723a"} device_1 | {"level":"info","message":"GET /devices/5b784b43-7a09-4cef-a8d7-694cc27b687d? 200 11ms","method":"GET","requestID":"5ff851f58ba109216eaf958f9404723a","responseTime":11,"status":200,"url":"/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUzfQ._3TOXdDya5GgnG-YVJNxbE1M1CY4NMPWSBCEo52jWmI","level":"info","message":"auth send jwt","requestID":"60b322be30374443d09d9ca835491161"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"60b322be30374443d09d9ca835491161","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:53Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.426748,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:53Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb","object_type":"device","payload":{"admin":true,"iat":1701705953,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUzfQ._3TOXdDya5GgnG-YVJNxbE1M1CY4NMPWSBCEo52jWmI"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/63e55dbe-2f59-4077-9b0f-9182844079fb? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"60b322be30374443d09d9ca835491161"} device_1 | {"level":"info","message":"GET /devices/63e55dbe-2f59-4077-9b0f-9182844079fb? 200 8ms","method":"GET","requestID":"60b322be30374443d09d9ca835491161","responseTime":8,"status":200,"url":"/devices/63e55dbe-2f59-4077-9b0f-9182844079fb?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUzfQ._3TOXdDya5GgnG-YVJNxbE1M1CY4NMPWSBCEo52jWmI","level":"info","message":"auth send jwt","requestID":"024d5d22241d0d367a6394594163706f"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"024d5d22241d0d367a6394594163706f","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:54572","level":"info","msg":"Received request.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:53Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.312534,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:53Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705953,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUzfQ._3TOXdDya5GgnG-YVJNxbE1M1CY4NMPWSBCEo52jWmI"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"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:54572","level":"info","msg":"Received request.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:53Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.20667,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:53Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d","object_type":"device","payload":{"admin":true,"iat":1701705953,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUzfQ._3TOXdDya5GgnG-YVJNxbE1M1CY4NMPWSBCEo52jWmI"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:35368","level":"info","msg":"Received request.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:53Z"} authorization_1 | {"client_addr":"127.0.0.1:35368","level":"info","msg":"Sent response.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.323951,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:53Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb","object_type":"device","payload":{"admin":true,"iat":1701705953,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUzfQ._3TOXdDya5GgnG-YVJNxbE1M1CY4NMPWSBCEo52jWmI"} device_1 | {"level":"info","message":"GET /devices/5b784b43-7a09-4cef-a8d7-694cc27b687d? 200 12ms","method":"GET","requestID":"00614e90-92bf-11ee-b645-7f04f10d7150","responseTime":12,"status":200,"url":"/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d?"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/63e55dbe-2f59-4077-9b0f-9182844079fb? 200 15ms","method":"GET","requestID":"00619cb0-92bf-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/63e55dbe-2f59-4077-9b0f-9182844079fb?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"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:54572","level":"info","msg":"Received request.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:54Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.18487,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:54Z"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d","object_type":"device","payload":{"admin":true,"iat":1701705953,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUzfQ._3TOXdDya5GgnG-YVJNxbE1M1CY4NMPWSBCEo52jWmI"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:35368","level":"info","msg":"Received request.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:54Z"} authorization_1 | {"client_addr":"127.0.0.1:35368","level":"info","msg":"Sent response.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.176525,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:54Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb","object_type":"device","payload":{"admin":true,"iat":1701705953,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUzfQ._3TOXdDya5GgnG-YVJNxbE1M1CY4NMPWSBCEo52jWmI"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/5b784b43-7a09-4cef-a8d7-694cc27b687d? 200 15ms","method":"GET","requestID":"009dbb50-92bf-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/63e55dbe-2f59-4077-9b0f-9182844079fb? 200 14ms","method":"GET","requestID":"009e0970-92bf-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/63e55dbe-2f59-4077-9b0f-9182844079fb?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"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":"3836ebfd-a954-48d4-b1f8-d17cb80c5a6b"},{"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":"941ca891-b74e-4796-9ee2-7a58f109ac84"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"ad0c6524-ccee-4812-9206-057ce1032f27"}]},"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/63e55dbe-2f59-4077-9b0f-9182844079fb"},{"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/5b784b43-7a09-4cef-a8d7-694cc27b687d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:54Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.761344,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:54Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705953,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTUzfQ._3TOXdDya5GgnG-YVJNxbE1M1CY4NMPWSBCEo52jWmI"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F92e50ea1-4fdd-4a24-b345-afe4668f3018#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F92e50ea1-4fdd-4a24-b345-afe4668f3018","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"2defa02e-4376-48dd-b00d-f46697a334e3","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705954.338848} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e1360763-8325-4f6f-8e83-6f2eb7754f54","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705954.3392053} authorization_1 | {"level":"info","message":"POST /relations/update 200 150ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":150}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"fdc111db-8313-4325-a220-9535ea3c0afe","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705954.3410919} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8b4b6d52-fcb2-45f0-8052-2e6ae2895227","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705954.3412545} authorization_1 | {"level":"info","message":"POST /relations/update 200 135ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":135}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 816ms","method":"POST","requestID":"024d5d22241d0d367a6394594163706f","responseTime":816,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:05:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.822","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"024d5d22241d0d367a6394594163706f"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU0fQ.CcJ3cnK7NXWNjbE6O72ejq3cLyQqvyJ7ZYe4cCiJ-Fk","level":"info","message":"auth send jwt","requestID":"23dee9e2607999fcccaf9ea144e35278"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"23dee9e2607999fcccaf9ea144e35278","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:54Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.861775,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:54Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d","object_type":"device","payload":{"admin":true,"iat":1701705954,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU0fQ.CcJ3cnK7NXWNjbE6O72ejq3cLyQqvyJ7ZYe4cCiJ-Fk"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/f79d87ca-fa74-4fb5-962f-0b2788023776'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/f79d87ca-fa74-4fb5-962f-0b2788023776'"} 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 291ms","method":"POST","requestID":"00a0a180-92bf-11ee-b645-7f04f10d7150","responseTime":291,"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":"04/Dec/2023:16:05:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5b784b43-7a09-4cef-a8d7-694cc27b687d? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.140","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"23dee9e2607999fcccaf9ea144e35278"} device_1 | {"level":"info","message":"GET /devices/5b784b43-7a09-4cef-a8d7-694cc27b687d? 200 136ms","method":"GET","requestID":"23dee9e2607999fcccaf9ea144e35278","responseTime":136,"status":200,"url":"/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU0fQ.CcJ3cnK7NXWNjbE6O72ejq3cLyQqvyJ7ZYe4cCiJ-Fk","level":"info","message":"auth send jwt","requestID":"a6a393c64166d22c7c429333d64e99a7"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a6a393c64166d22c7c429333d64e99a7","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:54Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.7388,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:54Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb","object_type":"device","payload":{"admin":true,"iat":1701705954,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU0fQ.CcJ3cnK7NXWNjbE6O72ejq3cLyQqvyJ7ZYe4cCiJ-Fk"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/63e55dbe-2f59-4077-9b0f-9182844079fb? 200 8ms","method":"GET","requestID":"a6a393c64166d22c7c429333d64e99a7","responseTime":8,"status":200,"url":"/devices/63e55dbe-2f59-4077-9b0f-9182844079fb?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/63e55dbe-2f59-4077-9b0f-9182844079fb? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a6a393c64166d22c7c429333d64e99a7"} device_1 | {"data":{"peerconnection":"f79d87ca-fa74-4fb5-962f-0b2788023776","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"level":"info","message":"Successfully created peerconnections for experiment"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/f79d87ca-fa74-4fb5-962f-0b2788023776' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"f79d87ca-fa74-4fb5-962f-0b2788023776","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"63ac158e15ef9c70fcf5f43dc885ec11","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"63ac158e15ef9c70fcf5f43dc885ec11","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/63e55dbe-2f59-4077-9b0f-9182844079fb"},{"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/5b784b43-7a09-4cef-a8d7-694cc27b687d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/f79d87ca-fa74-4fb5-962f-0b2788023776"}}},"level":"info","message":"received a callback"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 3ms","method":"POST","requestID":"63ac158e15ef9c70fcf5f43dc885ec11","responseTime":3,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:05:55 +0000","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":"63ac158e15ef9c70fcf5f43dc885ec11"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU1fQ.vGcyd95n1GJmAlNK7BtGnaI-yggVLEBcICXJa4NSWk4","level":"info","message":"auth send jwt","requestID":"3cd2a58c23bc9a544bafb2fc8d646dc6"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3cd2a58c23bc9a544bafb2fc8d646dc6","responseTime":3,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:55Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":0.883983,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:55Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018","object_type":"experiment","payload":{"admin":true,"iat":1701705955,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU1fQ.vGcyd95n1GJmAlNK7BtGnaI-yggVLEBcICXJa4NSWk4"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:55Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":0.844856,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:55Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f79d87ca-fa74-4fb5-962f-0b2788023776","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/f79d87ca-fa74-4fb5-962f-0b2788023776","object_type":"peerconnection","payload":{"admin":true,"iat":1701705955,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU1fQ.vGcyd95n1GJmAlNK7BtGnaI-yggVLEBcICXJa4NSWk4"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"data":{"peerconnection":"f79d87ca-fa74-4fb5-962f-0b2788023776","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff79d87ca-fa74-4fb5-962f-0b2788023776': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff79d87ca-fa74-4fb5-962f-0b2788023776","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"3a0b0ea0-efb6-418c-b8e4-0469c0da33f2","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705955.7106225} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"31e18a17-6d00-4a13-8458-73624270a1bd","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705955.7108052} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"data":{"peerconnection":"f79d87ca-fa74-4fb5-962f-0b2788023776","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/f79d87ca-fa74-4fb5-962f-0b2788023776 204 355ms","method":"DELETE","requestID":"0176b630-92bf-11ee-b645-7f04f10d7150","responseTime":355,"status":204,"url":"/peerconnections/f79d87ca-fa74-4fb5-962f-0b2788023776"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d'"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F92e50ea1-4fdd-4a24-b345-afe4668f3018': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F92e50ea1-4fdd-4a24-b345-afe4668f3018","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"d6f9198c-0cac-4d33-95bb-c5fa69b28474","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705956.2040231} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ffd0f96c-ec61-4d0c-9698-114956fe4b92","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705956.204179} authorization_1 | {"level":"info","message":"POST /relations/update 200 104ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":104}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"} gateway_1 | {"time_local":"04/Dec/2023:16:05:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.286","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3cd2a58c23bc9a544bafb2fc8d646dc6"} experiment_1 | {"level":"info","message":"DELETE /experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018 204 1282ms","method":"DELETE","requestID":"3cd2a58c23bc9a544bafb2fc8d646dc6","responseTime":1282,"status":204,"url":"/experiments/92e50ea1-4fdd-4a24-b345-afe4668f3018"} gateway_1 | {"time_local":"04/Dec/2023:16:05:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1552","request_time":"4.856","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"a19360a9621c54f4419a756c38234e71"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU2fQ.5zWR7H4GtTIsoy1fj6KSc_nqMpHBFqmR4dDOqFUq9HM","level":"info","message":"auth send jwt","requestID":"2ce9dd557aed2772e54dfd2cdc02aa65"} authentication_1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"2ce9dd557aed2772e54dfd2cdc02aa65","responseTime":6,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} gateway_1 | {"time_local":"04/Dec/2023:16:05:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1582","request_time":"3.528","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"705aec095fe523272afed5e02f9cd8e4"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:56Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.752939,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:56Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705956,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU2fQ.5zWR7H4GtTIsoy1fj6KSc_nqMpHBFqmR4dDOqFUq9HM"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"ce3ef0a1-0e42-476e-ad70-3c620eae15ba","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705956.894817} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bf309488-38a3-4292-aa12-2411fbed97d6","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705956.8950138} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/63e55dbe-2f59-4077-9b0f-9182844079fb' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 260ms","method":"POST","requestID":"2ce9dd557aed2772e54dfd2cdc02aa65","responseTime":260,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.269","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2ce9dd557aed2772e54dfd2cdc02aa65"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU3fQ.cXvEZBAPualscSmLjT1Zs6ixHMCVk-1jOP5cbr_ulP4","level":"info","message":"auth send jwt","requestID":"ec58f0d5f2e022154eba943651c36bcd"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ec58f0d5f2e022154eba943651c36bcd","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:57Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.30924,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:57Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705957,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU3fQ.cXvEZBAPualscSmLjT1Zs6ixHMCVk-1jOP5cbr_ulP4"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"6540845b-b2fd-415d-a26a-9c08e835285c","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705957.1668708} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"364fab11-029c-4839-8ca3-637d183ba48a","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705957.166964} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5b784b43-7a09-4cef-a8d7-694cc27b687d' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 258ms","method":"POST","requestID":"ec58f0d5f2e022154eba943651c36bcd","responseTime":258,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:05:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.297","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ec58f0d5f2e022154eba943651c36bcd"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU3fQ.cXvEZBAPualscSmLjT1Zs6ixHMCVk-1jOP5cbr_ulP4","level":"info","message":"auth send jwt","requestID":"4804a15658c6ba507a74b5ffe25bef32"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4804a15658c6ba507a74b5ffe25bef32","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:57Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.835764,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:57Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485","object_type":"device","payload":{"admin":true,"iat":1701705957,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU3fQ.cXvEZBAPualscSmLjT1Zs6ixHMCVk-1jOP5cbr_ulP4"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"PATCH /devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485 200 126ms","method":"PATCH","requestID":"4804a15658c6ba507a74b5ffe25bef32","responseTime":126,"status":200,"url":"/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485"} gateway_1 | {"time_local":"04/Dec/2023:16:05:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485 HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.131","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"4804a15658c6ba507a74b5ffe25bef32"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU4fQ.5D5eJX88Bzu7uZWEWaLlM3SZqx2eHhabKdYepYoPWwI","level":"info","message":"auth send jwt","requestID":"98215bc1ba03c505ac72adbf1030d82c"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"98215bc1ba03c505ac72adbf1030d82c","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:58Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":2.521486,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:58Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485","object_type":"device","payload":{"admin":true,"iat":1701705958,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU4fQ.5D5eJX88Bzu7uZWEWaLlM3SZqx2eHhabKdYepYoPWwI"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device_1 | {"level":"info","message":"POST /devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485/websocket 200 150ms","method":"POST","requestID":"98215bc1ba03c505ac72adbf1030d82c","responseTime":150,"status":200,"url":"/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485/websocket"} gateway_1 | {"time_local":"04/Dec/2023:16:05:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.157","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"98215bc1ba03c505ac72adbf1030d82c"} device_1 | {"level":"info","message":"device 'http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485' connected"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"583b027f8c83a55d4609a1f7e50d966f","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"583b027f8c83a55d4609a1f7e50d966f","responseTime":2,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:05:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/200ab38b-d7a8-4081-a116-2a3ff0859e54/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":"583b027f8c83a55d4609a1f7e50d966f"} device_1 | {"level":"info","message":"OPTIONS /devices/200ab38b-d7a8-4081-a116-2a3ff0859e54/websocket 200 2ms","method":"OPTIONS","requestID":"583b027f8c83a55d4609a1f7e50d966f","responseTime":2,"status":200,"url":"/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU5fQ.NQR6DVeMhIv_AuXwBN6qGocT84uJVPwcrj2ebdFWlEY","level":"info","message":"auth send jwt","requestID":"aa5c59c985f0ea1fd5f884653cfcf812"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"aa5c59c985f0ea1fd5f884653cfcf812","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:59Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.259463,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:59Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54","object_type":"device","payload":{"admin":true,"iat":1701705959,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU5fQ.NQR6DVeMhIv_AuXwBN6qGocT84uJVPwcrj2ebdFWlEY"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:05:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/200ab38b-d7a8-4081-a116-2a3ff0859e54/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.130","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"aa5c59c985f0ea1fd5f884653cfcf812"} device_1 | {"level":"info","message":"POST /devices/200ab38b-d7a8-4081-a116-2a3ff0859e54/websocket 200 124ms","method":"POST","requestID":"aa5c59c985f0ea1fd5f884653cfcf812","responseTime":124,"status":200,"url":"/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU5fQ.NQR6DVeMhIv_AuXwBN6qGocT84uJVPwcrj2ebdFWlEY","level":"info","message":"auth send jwt","requestID":"a843f5c5c6ddc01af756884272813ead"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a843f5c5c6ddc01af756884272813ead","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:59Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.186987,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:59Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54","object_type":"device","payload":{"admin":true,"iat":1701705959,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU5fQ.NQR6DVeMhIv_AuXwBN6qGocT84uJVPwcrj2ebdFWlEY"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/200ab38b-d7a8-4081-a116-2a3ff0859e54? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a843f5c5c6ddc01af756884272813ead"} device_1 | {"level":"info","message":"GET /devices/200ab38b-d7a8-4081-a116-2a3ff0859e54? 200 12ms","method":"GET","requestID":"a843f5c5c6ddc01af756884272813ead","responseTime":12,"status":200,"url":"/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU5fQ.NQR6DVeMhIv_AuXwBN6qGocT84uJVPwcrj2ebdFWlEY","level":"info","message":"auth send jwt","requestID":"878f14506f60b85c92523114a25f0860"} authentication_1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"878f14506f60b85c92523114a25f0860","responseTime":6,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:59Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.171842,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:59Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485","object_type":"device","payload":{"admin":true,"iat":1701705959,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU5fQ.NQR6DVeMhIv_AuXwBN6qGocT84uJVPwcrj2ebdFWlEY"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:05:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"878f14506f60b85c92523114a25f0860"} device_1 | {"level":"info","message":"GET /devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485? 200 11ms","method":"GET","requestID":"878f14506f60b85c92523114a25f0860","responseTime":11,"status":200,"url":"/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU5fQ.NQR6DVeMhIv_AuXwBN6qGocT84uJVPwcrj2ebdFWlEY","level":"info","message":"auth send jwt","requestID":"3a437c278a2e82aaa2033fa9807bebcd"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3a437c278a2e82aaa2033fa9807bebcd","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:54572","level":"info","msg":"Received request.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:59Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.005757,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:59Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705959,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU5fQ.NQR6DVeMhIv_AuXwBN6qGocT84uJVPwcrj2ebdFWlEY"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"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:54572","level":"info","msg":"Received request.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:59Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.135521,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:59Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54","object_type":"device","payload":{"admin":true,"iat":1701705959,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU5fQ.NQR6DVeMhIv_AuXwBN6qGocT84uJVPwcrj2ebdFWlEY"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:45422","level":"info","msg":"Received request.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:05:59Z"} authorization_1 | {"client_addr":"127.0.0.1:45422","level":"info","msg":"Sent response.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.06558,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:05:59Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485","object_type":"device","payload":{"admin":true,"iat":1701705959,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU5fQ.NQR6DVeMhIv_AuXwBN6qGocT84uJVPwcrj2ebdFWlEY"} device_1 | {"level":"info","message":"GET /devices/200ab38b-d7a8-4081-a116-2a3ff0859e54? 200 12ms","method":"GET","requestID":"040c5530-92bf-11ee-b645-7f04f10d7150","responseTime":12,"status":200,"url":"/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54?"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485? 200 15ms","method":"GET","requestID":"040ca350-92bf-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"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/4c41e81d-b72d-4091-8a85-c10be1397844"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:00Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.192155,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:00Z"} authorization_1 | {"client_addr":"127.0.0.1:45422","level":"info","msg":"Received request.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:00Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54","object_type":"device","payload":{"admin":true,"iat":1701705959,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU5fQ.NQR6DVeMhIv_AuXwBN6qGocT84uJVPwcrj2ebdFWlEY"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:45422","level":"info","msg":"Sent response.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.360239,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:00Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/200ab38b-d7a8-4081-a116-2a3ff0859e54? 200 13ms","method":"GET","requestID":"044b32f0-92bf-11ee-b645-7f04f10d7150","responseTime":13,"status":200,"url":"/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54?"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485","object_type":"device","payload":{"admin":true,"iat":1701705959,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU5fQ.NQR6DVeMhIv_AuXwBN6qGocT84uJVPwcrj2ebdFWlEY"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485? 200 16ms","method":"GET","requestID":"044b8110-92bf-11ee-b645-7f04f10d7150","responseTime":16,"status":200,"url":"/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"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":"50bfa7ff-4ec5-4448-9362-b15c87da8ea5"},{"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":"359c0833-5a87-4123-a161-606d164f458f"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"39acee1a-bbcb-4733-8f25-8ca50932cd44"}]},"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/7b0d15d9-74ec-4284-b48c-a2c4fa671485"},{"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/200ab38b-d7a8-4081-a116-2a3ff0859e54"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:00Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":1.064308,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:00Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705959,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTU5fQ.NQR6DVeMhIv_AuXwBN6qGocT84uJVPwcrj2ebdFWlEY"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4c41e81d-b72d-4091-8a85-c10be1397844#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4c41e81d-b72d-4091-8a85-c10be1397844","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"badc9595-0c55-423f-90dd-b7333d69ac16","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705960.486607} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d4d5bac2-0221-4dda-a541-447936865aac","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705960.4867988} authorization_1 | {"level":"info","message":"POST /relations/update 200 131ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":131}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"aa00f859-6bb4-478e-84a4-6efd3c84fb48","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705960.4892566} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d1b5b797-3bdf-4bd6-9ddf-585ed9561e09","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705960.4894729} authorization_1 | {"level":"info","message":"POST /relations/update 200 111ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":111}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 851ms","method":"POST","requestID":"3a437c278a2e82aaa2033fa9807bebcd","responseTime":851,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:06:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.857","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3a437c278a2e82aaa2033fa9807bebcd"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTYwfQ.ebpuJXijgaGz-7hCRRIvrH2VU6T_o9KbzJXbpT1ZFEg","level":"info","message":"auth send jwt","requestID":"ec2ef914c6c8369c248c1f83a97ae4c5"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ec2ef914c6c8369c248c1f83a97ae4c5","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:00Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.915314,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:00Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54","object_type":"device","payload":{"admin":true,"iat":1701705960,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTYwfQ.ebpuJXijgaGz-7hCRRIvrH2VU6T_o9KbzJXbpT1ZFEg"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/35df577b-c172-475d-9fa9-3726f4fa416f'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/35df577b-c172-475d-9fa9-3726f4fa416f'"} 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 258ms","method":"POST","requestID":"044e4030-92bf-11ee-b645-7f04f10d7150","responseTime":258,"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":"04/Dec/2023:16:06:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/200ab38b-d7a8-4081-a116-2a3ff0859e54? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.127","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ec2ef914c6c8369c248c1f83a97ae4c5"} device_1 | {"level":"info","message":"GET /devices/200ab38b-d7a8-4081-a116-2a3ff0859e54? 200 122ms","method":"GET","requestID":"ec2ef914c6c8369c248c1f83a97ae4c5","responseTime":122,"status":200,"url":"/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTYwfQ.ebpuJXijgaGz-7hCRRIvrH2VU6T_o9KbzJXbpT1ZFEg","level":"info","message":"auth send jwt","requestID":"ffbc299c5b942b9348fbf27e697d8317"} authentication_1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ffbc299c5b942b9348fbf27e697d8317","responseTime":2,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:00Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.730883,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:00Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485","object_type":"device","payload":{"admin":true,"iat":1701705960,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTYwfQ.ebpuJXijgaGz-7hCRRIvrH2VU6T_o9KbzJXbpT1ZFEg"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/7b0d15d9-74ec-4284-b48c-a2c4fa671485? 200 8ms","method":"GET","requestID":"ffbc299c5b942b9348fbf27e697d8317","responseTime":8,"status":200,"url":"/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ffbc299c5b942b9348fbf27e697d8317"} device_1 | {"data":{"peerconnection":"35df577b-c172-475d-9fa9-3726f4fa416f","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"level":"info","message":"Successfully created peerconnections for experiment"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/35df577b-c172-475d-9fa9-3726f4fa416f' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"35df577b-c172-475d-9fa9-3726f4fa416f","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"e376cf93fad2392e460bd3ed78341d75","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"e376cf93fad2392e460bd3ed78341d75","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/7b0d15d9-74ec-4284-b48c-a2c4fa671485"},{"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/200ab38b-d7a8-4081-a116-2a3ff0859e54"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/35df577b-c172-475d-9fa9-3726f4fa416f"}}},"level":"info","message":"received a callback"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 3ms","method":"POST","requestID":"e376cf93fad2392e460bd3ed78341d75","responseTime":3,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:06:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.006","http_referrer":"","http_user_agent":"node-fetch","requestID":"e376cf93fad2392e460bd3ed78341d75"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTYxfQ.O0TnbY87Ouv9rXttWQXjiMDUHwGLiQdUQ78rd0s7hyo","level":"info","message":"auth send jwt","requestID":"e79b13f7d518dc8aad5222428fadbd20"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e79b13f7d518dc8aad5222428fadbd20","responseTime":4,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/4c41e81d-b72d-4091-8a85-c10be1397844"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:01Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":0.856794,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:01Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844","object_type":"experiment","payload":{"admin":true,"iat":1701705961,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTYxfQ.O0TnbY87Ouv9rXttWQXjiMDUHwGLiQdUQ78rd0s7hyo"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:01Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":1.889443,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:01Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/35df577b-c172-475d-9fa9-3726f4fa416f","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/35df577b-c172-475d-9fa9-3726f4fa416f","object_type":"peerconnection","payload":{"admin":true,"iat":1701705961,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTYxfQ.O0TnbY87Ouv9rXttWQXjiMDUHwGLiQdUQ78rd0s7hyo"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"peerconnection":"35df577b-c172-475d-9fa9-3726f4fa416f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F35df577b-c172-475d-9fa9-3726f4fa416f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F35df577b-c172-475d-9fa9-3726f4fa416f","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"d7f16ec4-330b-4d57-81a5-9484cc6faaf0","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705961.8325074} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"39fa19a7-5855-4da9-9941-93ed60c4d0a6","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705961.8327272} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} device_1 | {"data":{"peerconnection":"35df577b-c172-475d-9fa9-3726f4fa416f","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/35df577b-c172-475d-9fa9-3726f4fa416f 204 338ms","method":"DELETE","requestID":"051cb3c0-92bf-11ee-b645-7f04f10d7150","responseTime":338,"status":204,"url":"/peerconnections/35df577b-c172-475d-9fa9-3726f4fa416f"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/200ab38b-d7a8-4081-a116-2a3ff0859e54'"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4c41e81d-b72d-4091-8a85-c10be1397844': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4c41e81d-b72d-4091-8a85-c10be1397844","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"d421abfd-a0ed-4b06-be3c-b9b95e01ad03","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705962.3243897} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7f1b0d19-b108-44dc-8349-dfbcd6cd2054","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705962.324601} authorization_1 | {"level":"info","message":"POST /relations/update 200 112ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":112}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/4c41e81d-b72d-4091-8a85-c10be1397844"} gateway_1 | {"time_local":"04/Dec/2023:16:06:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/4c41e81d-b72d-4091-8a85-c10be1397844 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.328","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e79b13f7d518dc8aad5222428fadbd20"} experiment_1 | {"level":"info","message":"DELETE /experiments/4c41e81d-b72d-4091-8a85-c10be1397844 204 1324ms","method":"DELETE","requestID":"e79b13f7d518dc8aad5222428fadbd20","responseTime":1324,"status":204,"url":"/experiments/4c41e81d-b72d-4091-8a85-c10be1397844"} gateway_1 | {"time_local":"04/Dec/2023:16:06:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1552","request_time":"4.865","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"37ebe2fd2ba4ff72140f6405162c693c"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTYzfQ.xVk1b1SPOCdkgmJgjbaLIAmNBkuTD0pxKrU3dLQ7ZF8","level":"info","message":"auth send jwt","requestID":"5cec5e2a0a8834685251c77eefbb5bee"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5cec5e2a0a8834685251c77eefbb5bee","responseTime":3,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:06:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1582","request_time":"3.570","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"76b2b995ae64f8ab3f2c16e43f92440b"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:03Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.95983,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:03Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705963,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTYzfQ.xVk1b1SPOCdkgmJgjbaLIAmNBkuTD0pxKrU3dLQ7ZF8"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"1a133dee-91b8-4829-b511-f0ac3928962f","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705963.057717} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"89abe21d-baf7-4aad-bb0e-74a284740bc3","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705963.0579576} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/7b0d15d9-74ec-4284-b48c-a2c4fa671485' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 260ms","method":"POST","requestID":"5cec5e2a0a8834685251c77eefbb5bee","responseTime":260,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.267","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5cec5e2a0a8834685251c77eefbb5bee"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTYzfQ.xVk1b1SPOCdkgmJgjbaLIAmNBkuTD0pxKrU3dLQ7ZF8","level":"info","message":"auth send jwt","requestID":"53fdfdda5adc2f8c13e92147e1e47ad1"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"53fdfdda5adc2f8c13e92147e1e47ad1","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:03Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.093983,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:03Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705963,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTYzfQ.xVk1b1SPOCdkgmJgjbaLIAmNBkuTD0pxKrU3dLQ7ZF8"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"a05fa81d-2ee4-4708-805e-9bb54bd43c0c","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705963.326427} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2fd6845f-997f-4251-a4ec-d587ca4b46a7","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705963.326677} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/200ab38b-d7a8-4081-a116-2a3ff0859e54' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 224ms","method":"POST","requestID":"53fdfdda5adc2f8c13e92147e1e47ad1","responseTime":224,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.259","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"53fdfdda5adc2f8c13e92147e1e47ad1"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY0fQ.88QTbnkXt6rOBcJvaN_X7Ddq4ZpLLcr15fVxolgyaTM","level":"info","message":"auth send jwt","requestID":"dc3aa461224bd6ca6f5519b5d599e747"} authentication_1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"dc3aa461224bd6ca6f5519b5d599e747","responseTime":2,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:04Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.773592,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:04Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea","object_type":"device","payload":{"admin":true,"iat":1701705964,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY0fQ.88QTbnkXt6rOBcJvaN_X7Ddq4ZpLLcr15fVxolgyaTM"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"PATCH /devices/fa313a36-a262-4d01-840e-ecdd86458aea 200 122ms","method":"PATCH","requestID":"dc3aa461224bd6ca6f5519b5d599e747","responseTime":122,"status":200,"url":"/devices/fa313a36-a262-4d01-840e-ecdd86458aea"} gateway_1 | {"time_local":"04/Dec/2023:16:06:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/fa313a36-a262-4d01-840e-ecdd86458aea HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.125","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"dc3aa461224bd6ca6f5519b5d599e747"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY0fQ.88QTbnkXt6rOBcJvaN_X7Ddq4ZpLLcr15fVxolgyaTM","level":"info","message":"auth send jwt","requestID":"e5de2fce1a559b8537ffd852c6b4745b"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e5de2fce1a559b8537ffd852c6b4745b","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:04Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.421228,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:04Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea","object_type":"device","payload":{"admin":true,"iat":1701705964,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY0fQ.88QTbnkXt6rOBcJvaN_X7Ddq4ZpLLcr15fVxolgyaTM"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/fa313a36-a262-4d01-840e-ecdd86458aea/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.131","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"e5de2fce1a559b8537ffd852c6b4745b"} device_1 | {"level":"info","message":"POST /devices/fa313a36-a262-4d01-840e-ecdd86458aea/websocket 200 126ms","method":"POST","requestID":"e5de2fce1a559b8537ffd852c6b4745b","responseTime":126,"status":200,"url":"/devices/fa313a36-a262-4d01-840e-ecdd86458aea/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea' connected"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"f07cfd9f43a7268355a2ca7d7bbeff4b","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"f07cfd9f43a7268355a2ca7d7bbeff4b","responseTime":2,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:06:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5/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":"f07cfd9f43a7268355a2ca7d7bbeff4b"} device_1 | {"level":"info","message":"OPTIONS /devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5/websocket 200 1ms","method":"OPTIONS","requestID":"f07cfd9f43a7268355a2ca7d7bbeff4b","responseTime":1,"status":200,"url":"/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY1fQ.kcxz4kS4gOO1d6-_CpYhlHM5BmBMbrsG_VOtlRsXHDY","level":"info","message":"auth send jwt","requestID":"db75a35c89a2c4682277f95abc1eeda1"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"db75a35c89a2c4682277f95abc1eeda1","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:05Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.232879,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:05Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5","object_type":"device","payload":{"admin":true,"iat":1701705965,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY1fQ.kcxz4kS4gOO1d6-_CpYhlHM5BmBMbrsG_VOtlRsXHDY"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.143","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"db75a35c89a2c4682277f95abc1eeda1"} device_1 | {"level":"info","message":"POST /devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5/websocket 200 137ms","method":"POST","requestID":"db75a35c89a2c4682277f95abc1eeda1","responseTime":137,"status":200,"url":"/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY1fQ.kcxz4kS4gOO1d6-_CpYhlHM5BmBMbrsG_VOtlRsXHDY","level":"info","message":"auth send jwt","requestID":"cc39ddb2f52db4c3e07410ddc8c5b9c0"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cc39ddb2f52db4c3e07410ddc8c5b9c0","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:05Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.114377,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:05Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea","object_type":"device","payload":{"admin":true,"iat":1701705965,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY1fQ.kcxz4kS4gOO1d6-_CpYhlHM5BmBMbrsG_VOtlRsXHDY"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:06:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fa313a36-a262-4d01-840e-ecdd86458aea? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cc39ddb2f52db4c3e07410ddc8c5b9c0"} device_1 | {"level":"info","message":"GET /devices/fa313a36-a262-4d01-840e-ecdd86458aea? 200 12ms","method":"GET","requestID":"cc39ddb2f52db4c3e07410ddc8c5b9c0","responseTime":12,"status":200,"url":"/devices/fa313a36-a262-4d01-840e-ecdd86458aea?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY1fQ.kcxz4kS4gOO1d6-_CpYhlHM5BmBMbrsG_VOtlRsXHDY","level":"info","message":"auth send jwt","requestID":"4452a4c4266e27663a06c2e7bc3aaf2d"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4452a4c4266e27663a06c2e7bc3aaf2d","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:05Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.197614,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:05Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5","object_type":"device","payload":{"admin":true,"iat":1701705965,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY1fQ.kcxz4kS4gOO1d6-_CpYhlHM5BmBMbrsG_VOtlRsXHDY"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5? 200 10ms","method":"GET","requestID":"4452a4c4266e27663a06c2e7bc3aaf2d","responseTime":10,"status":200,"url":"/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4452a4c4266e27663a06c2e7bc3aaf2d"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY1fQ.kcxz4kS4gOO1d6-_CpYhlHM5BmBMbrsG_VOtlRsXHDY","level":"info","message":"auth send jwt","requestID":"868fab10db1a276a9e3e1707ccc40fcd"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"868fab10db1a276a9e3e1707ccc40fcd","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:54572","level":"info","msg":"Received request.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:05Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.00069,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:05Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705965,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY1fQ.kcxz4kS4gOO1d6-_CpYhlHM5BmBMbrsG_VOtlRsXHDY"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"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:54572","level":"info","msg":"Received request.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:06Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.761872,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:06Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea","object_type":"device","payload":{"admin":true,"iat":1701705965,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY1fQ.kcxz4kS4gOO1d6-_CpYhlHM5BmBMbrsG_VOtlRsXHDY"} authorization_1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization_1 | {"client_addr":"127.0.0.1:45432","level":"info","msg":"Received request.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:06Z"} authorization_1 | {"client_addr":"127.0.0.1:45432","level":"info","msg":"Sent response.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.388325,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:06Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5","object_type":"device","payload":{"admin":true,"iat":1701705965,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY1fQ.kcxz4kS4gOO1d6-_CpYhlHM5BmBMbrsG_VOtlRsXHDY"} device_1 | {"level":"info","message":"GET /devices/fa313a36-a262-4d01-840e-ecdd86458aea? 200 18ms","method":"GET","requestID":"07b0cc20-92bf-11ee-b645-7f04f10d7150","responseTime":18,"status":200,"url":"/devices/fa313a36-a262-4d01-840e-ecdd86458aea?"} authorization_1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5? 200 20ms","method":"GET","requestID":"07b14150-92bf-11ee-b645-7f04f10d7150","responseTime":20,"status":200,"url":"/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"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/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:06Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.033933,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:06Z"} authorization_1 | {"client_addr":"127.0.0.1:45432","level":"info","msg":"Received request.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:06Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea","object_type":"device","payload":{"admin":true,"iat":1701705965,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY1fQ.kcxz4kS4gOO1d6-_CpYhlHM5BmBMbrsG_VOtlRsXHDY"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization_1 | {"client_addr":"127.0.0.1:45432","level":"info","msg":"Sent response.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.131322,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:06Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/fa313a36-a262-4d01-840e-ecdd86458aea? 200 15ms","method":"GET","requestID":"07ec0060-92bf-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/fa313a36-a262-4d01-840e-ecdd86458aea?"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5","object_type":"device","payload":{"admin":true,"iat":1701705965,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY1fQ.kcxz4kS4gOO1d6-_CpYhlHM5BmBMbrsG_VOtlRsXHDY"} authorization_1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5? 200 17ms","method":"GET","requestID":"07ec4e80-92bf-11ee-b645-7f04f10d7150","responseTime":17,"status":200,"url":"/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"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":"fdc03475-b729-4da3-a66e-fe622298077c"},{"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":"b83c3ec2-831a-4e65-93a6-912622e58cec"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"15b71736-2527-43d8-b30e-37e362c1cff9"}]},"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/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5"},{"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/fa313a36-a262-4d01-840e-ecdd86458aea"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:06Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.981263,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:06Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705965,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY1fQ.kcxz4kS4gOO1d6-_CpYhlHM5BmBMbrsG_VOtlRsXHDY"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F18fa5ac8-6bfb-4607-a5a3-ac51e082632e#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F18fa5ac8-6bfb-4607-a5a3-ac51e082632e","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"7ac9d2b4-9cb1-4a4a-8182-df7365af84aa","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705966.5834043} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f245fa25-199a-481f-8977-b0725cc5a533","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705966.583682} authorization_1 | {"level":"info","message":"POST /relations/update 200 139ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":139}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"110daa11-3462-4c09-8b2d-2448798a6137","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705966.5856612} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"77d3ebba-5c07-40bc-b58e-7bf0d11f815d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705966.5861104} authorization_1 | {"level":"info","message":"POST /relations/update 200 121ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":121}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 811ms","method":"POST","requestID":"868fab10db1a276a9e3e1707ccc40fcd","responseTime":811,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:06:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.819","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"868fab10db1a276a9e3e1707ccc40fcd"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY2fQ.FHGCD3Dp77I0jiigEDdbMVq3Ni8NPkdpjUnN-RXMxyg","level":"info","message":"auth send jwt","requestID":"c8fbd7acedf17a033a5027181245cce4"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c8fbd7acedf17a033a5027181245cce4","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:06Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.858327,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:06Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea","object_type":"device","payload":{"admin":true,"iat":1701705966,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY2fQ.FHGCD3Dp77I0jiigEDdbMVq3Ni8NPkdpjUnN-RXMxyg"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"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/23d39e72-e808-4235-8fa5-0030ef4d8037'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/23d39e72-e808-4235-8fa5-0030ef4d8037'"} 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 265ms","method":"POST","requestID":"07ef5bc0-92bf-11ee-b645-7f04f10d7150","responseTime":265,"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":"04/Dec/2023:16:06:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fa313a36-a262-4d01-840e-ecdd86458aea? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.126","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c8fbd7acedf17a033a5027181245cce4"} device_1 | {"level":"info","message":"GET /devices/fa313a36-a262-4d01-840e-ecdd86458aea? 200 119ms","method":"GET","requestID":"c8fbd7acedf17a033a5027181245cce4","responseTime":119,"status":200,"url":"/devices/fa313a36-a262-4d01-840e-ecdd86458aea?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY2fQ.FHGCD3Dp77I0jiigEDdbMVq3Ni8NPkdpjUnN-RXMxyg","level":"info","message":"auth send jwt","requestID":"1fc205fb01e3dedea4d41a1d61c7f654"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1fc205fb01e3dedea4d41a1d61c7f654","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:06Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.948775,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:06Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5","object_type":"device","payload":{"admin":true,"iat":1701705966,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY2fQ.FHGCD3Dp77I0jiigEDdbMVq3Ni8NPkdpjUnN-RXMxyg"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1fc205fb01e3dedea4d41a1d61c7f654"} device_1 | {"level":"info","message":"GET /devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5? 200 9ms","method":"GET","requestID":"1fc205fb01e3dedea4d41a1d61c7f654","responseTime":9,"status":200,"url":"/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5?"} device_1 | {"data":{"peerconnection":"23d39e72-e808-4235-8fa5-0030ef4d8037","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/23d39e72-e808-4235-8fa5-0030ef4d8037' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"23d39e72-e808-4235-8fa5-0030ef4d8037","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"0e3684cc1c3346d15a9a313d54cb48f7","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"0e3684cc1c3346d15a9a313d54cb48f7","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/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5"},{"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/fa313a36-a262-4d01-840e-ecdd86458aea"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/23d39e72-e808-4235-8fa5-0030ef4d8037"}}},"level":"info","message":"received a callback"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 110ms","method":"POST","requestID":"0e3684cc1c3346d15a9a313d54cb48f7","responseTime":110,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:06:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.114","http_referrer":"","http_user_agent":"node-fetch","requestID":"0e3684cc1c3346d15a9a313d54cb48f7"} device_1 | {"data":{"peerconnection":"23d39e72-e808-4235-8fa5-0030ef4d8037","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY3fQ.JrBc0fjSPnSe57sbPrHda8uDgBVKzNxwnS8ew7D4VmE","level":"info","message":"auth send jwt","requestID":"7ed405711405f64e9a8619350c634420"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7ed405711405f64e9a8619350c634420","responseTime":5,"status":200,"url":"/auth"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"level":"info","message":"Successfully created peerconnections for experiment"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:07Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":1.300315,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:07Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e","object_type":"experiment","payload":{"admin":true,"iat":1701705967,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY3fQ.JrBc0fjSPnSe57sbPrHda8uDgBVKzNxwnS8ew7D4VmE"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:07Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":0.664287,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:07Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/23d39e72-e808-4235-8fa5-0030ef4d8037","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/23d39e72-e808-4235-8fa5-0030ef4d8037","object_type":"peerconnection","payload":{"admin":true,"iat":1701705967,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY3fQ.JrBc0fjSPnSe57sbPrHda8uDgBVKzNxwnS8ew7D4VmE"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"peerconnection":"23d39e72-e808-4235-8fa5-0030ef4d8037","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F23d39e72-e808-4235-8fa5-0030ef4d8037': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F23d39e72-e808-4235-8fa5-0030ef4d8037","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"fc5b4f68-bd18-49ca-905b-f5b2f7b8cb7a","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705967.1942332} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"633e928a-d008-4e76-8ad8-b21918b37413","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705967.1946073} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/23d39e72-e808-4235-8fa5-0030ef4d8037' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"23d39e72-e808-4235-8fa5-0030ef4d8037","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"618c79652849b20d13b02bc97a750967","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"618c79652849b20d13b02bc97a750967","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/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5"},{"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/fa313a36-a262-4d01-840e-ecdd86458aea"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/23d39e72-e808-4235-8fa5-0030ef4d8037"}}},"level":"info","message":"received a callback"} device_1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:07Z"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","contextual_tuples":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F23d39e72-e808-4235-8fa5-0030ef4d8037","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d5e06518-98b4-4315-b6e7-34c2a503196d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705967.3265505} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.246958,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:07Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/23d39e72-e808-4235-8fa5-0030ef4d8037","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/23d39e72-e808-4235-8fa5-0030ef4d8037","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/23d39e72-e808-4235-8fa5-0030ef4d8037 204 335ms","method":"DELETE","requestID":"08534db0-92bf-11ee-b645-7f04f10d7150","responseTime":335,"status":204,"url":"/peerconnections/23d39e72-e808-4235-8fa5-0030ef4d8037"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea'"} device_1 | {"data":{"error":"MissingEntityError","message":"The requested Peerconnection does not exist in the database","method":"GET","stack":"MissingEntityError: The requested Peerconnection does not exist in the database\n at PeerconnectionRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async Object.getPeerconnectionsByPeerconnectionId (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/peerconnections/peerconnection/get.js:13:33)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:351:28","status":404,"url":"/peerconnections/23d39e72-e808-4235-8fa5-0030ef4d8037"},"level":"error","message":"An error occurred during the handling of a request","requestID":"08729580-92bf-11ee-b645-7f04f10d7150"} device_1 | {"level":"info","message":"GET /peerconnections/23d39e72-e808-4235-8fa5-0030ef4d8037 404 133ms","method":"GET","requestID":"08729580-92bf-11ee-b645-7f04f10d7150","responseTime":133,"status":404,"url":"/peerconnections/23d39e72-e808-4235-8fa5-0030ef4d8037"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5'"} experiment_1 | {"data":{"error":"UnsuccessfulRequestError","message":"Server returned response with status 404","method":"POST","stack":"UnsuccessfulRequestError: Server returned response with status 404\n at Client.getPeerconnection (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/clients/device/client.js:870:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async handlePeerconnectionStatusChangedEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/peerconnectionStatusChanged.js:41:22)\n at async handleEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/index.js:20:20)\n at async file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/index.js:20:39","status":500,"url":"/callbacks/experiment"},"level":"error","message":"An error occurred during the handling of a request","requestID":"618c79652849b20d13b02bc97a750967"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 500 143ms","method":"POST","requestID":"618c79652849b20d13b02bc97a750967","responseTime":143,"status":500,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:06:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "500","body_bytes_sent":"89","request_time":"0.147","http_referrer":"","http_user_agent":"node-fetch","requestID":"618c79652849b20d13b02bc97a750967"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F18fa5ac8-6bfb-4607-a5a3-ac51e082632e': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F18fa5ac8-6bfb-4607-a5a3-ac51e082632e","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"eed93f71-8050-4cd5-9880-472ffafa9cf5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705967.7047243} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7a1b53fa-73ac-4e5f-b4f4-1e0aacd0aaeb","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705967.7058787} authorization_1 | {"level":"info","message":"POST /relations/update 200 123ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":123}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"} gateway_1 | {"time_local":"04/Dec/2023:16:06:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.369","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7ed405711405f64e9a8619350c634420"} experiment_1 | {"level":"info","message":"DELETE /experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e 204 1363ms","method":"DELETE","requestID":"7ed405711405f64e9a8619350c634420","responseTime":1363,"status":204,"url":"/experiments/18fa5ac8-6bfb-4607-a5a3-ac51e082632e"} gateway_1 | {"time_local":"04/Dec/2023:16:06:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1504","request_time":"4.150","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"4c852015f665d743a6bdef1937fe6642"} gateway_1 | {"time_local":"04/Dec/2023:16:06:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1585","request_time":"2.815","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"77da782a4ed92571e6fa8fa1a56c1b02"} device_1 | {"level":"info","message":"postDevices called"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY4fQ.rNbMON2-kAU10Jf_-9_kkCokw02-dUv4kGEToPMUPI8","level":"info","message":"auth send jwt","requestID":"088d484481eb3a460ac5ff372d94d951"} authentication_1 | {"level":"info","message":"GET /auth 200 11ms","method":"GET","requestID":"088d484481eb3a460ac5ff372d94d951","responseTime":11,"status":200,"url":"/auth"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:08Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.773528,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:08Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705968,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY4fQ.rNbMON2-kAU10Jf_-9_kkCokw02-dUv4kGEToPMUPI8"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"437a188e-280d-4f28-ac84-806efe95134d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705968.4434953} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7a00408b-b186-4dd5-be31-9f6ed8372fcd","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705968.4436097} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/fa313a36-a262-4d01-840e-ecdd86458aea' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 244ms","method":"POST","requestID":"088d484481eb3a460ac5ff372d94d951","responseTime":244,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.260","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"088d484481eb3a460ac5ff372d94d951"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY4fQ.rNbMON2-kAU10Jf_-9_kkCokw02-dUv4kGEToPMUPI8","level":"info","message":"auth send jwt","requestID":"f1635a2fc8521b785800067333b9ca00"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f1635a2fc8521b785800067333b9ca00","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:08Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.068044,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:08Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705968,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY4fQ.rNbMON2-kAU10Jf_-9_kkCokw02-dUv4kGEToPMUPI8"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"2089bd71-45c3-4a30-9738-bbee733e4553","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705968.6994276} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"73c08c91-4dee-49d8-8d85-835848a25e79","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705968.69963} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/1f5dfe4c-668f-49a2-9cac-9ae310c4bed5' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 242ms","method":"POST","requestID":"f1635a2fc8521b785800067333b9ca00","responseTime":242,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.276","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f1635a2fc8521b785800067333b9ca00"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY5fQ.Qkg-K3bWJbdOzlbos-yi_oWeElSByCeG1Ts6IQmJzX0","level":"info","message":"auth send jwt","requestID":"c815552ec68bba2fb7f6da324cfd53f7"} authentication_1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c815552ec68bba2fb7f6da324cfd53f7","responseTime":2,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:09Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.0128,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:09Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd","object_type":"device","payload":{"admin":true,"iat":1701705969,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY5fQ.Qkg-K3bWJbdOzlbos-yi_oWeElSByCeG1Ts6IQmJzX0"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/50929e1f-0d5e-47da-b367-932781a0cbfd HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.127","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"c815552ec68bba2fb7f6da324cfd53f7"} device_1 | {"level":"info","message":"PATCH /devices/50929e1f-0d5e-47da-b367-932781a0cbfd 200 123ms","method":"PATCH","requestID":"c815552ec68bba2fb7f6da324cfd53f7","responseTime":123,"status":200,"url":"/devices/50929e1f-0d5e-47da-b367-932781a0cbfd"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY5fQ.Qkg-K3bWJbdOzlbos-yi_oWeElSByCeG1Ts6IQmJzX0","level":"info","message":"auth send jwt","requestID":"b8127e95af236ea0b83c47cb93343ed1"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b8127e95af236ea0b83c47cb93343ed1","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:09Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.985863,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:09Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd","object_type":"device","payload":{"admin":true,"iat":1701705969,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTY5fQ.Qkg-K3bWJbdOzlbos-yi_oWeElSByCeG1Ts6IQmJzX0"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/50929e1f-0d5e-47da-b367-932781a0cbfd/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.140","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"b8127e95af236ea0b83c47cb93343ed1"} device_1 | {"level":"info","message":"POST /devices/50929e1f-0d5e-47da-b367-932781a0cbfd/websocket 200 134ms","method":"POST","requestID":"b8127e95af236ea0b83c47cb93343ed1","responseTime":134,"status":200,"url":"/devices/50929e1f-0d5e-47da-b367-932781a0cbfd/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd' connected"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"c73529e04a469acc171e9af08e7e71be","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"c73529e04a469acc171e9af08e7e71be","responseTime":1,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:06:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383/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":"c73529e04a469acc171e9af08e7e71be"} device_1 | {"level":"info","message":"OPTIONS /devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383/websocket 200 1ms","method":"OPTIONS","requestID":"c73529e04a469acc171e9af08e7e71be","responseTime":1,"status":200,"url":"/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcwfQ.9r78YSpsmFM11VIHCi97Xu4a0_CzqOP_EKEMgB4h4ho","level":"info","message":"auth send jwt","requestID":"203c0707acd05e4b7f3a93deba2c56c3"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"203c0707acd05e4b7f3a93deba2c56c3","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:10Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.924765,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:10Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383","object_type":"device","payload":{"admin":true,"iat":1701705970,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcwfQ.9r78YSpsmFM11VIHCi97Xu4a0_CzqOP_EKEMgB4h4ho"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383/websocket 200 126ms","method":"POST","requestID":"203c0707acd05e4b7f3a93deba2c56c3","responseTime":126,"status":200,"url":"/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383/websocket"} gateway_1 | {"time_local":"04/Dec/2023:16:06:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.131","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"203c0707acd05e4b7f3a93deba2c56c3"} device_1 | {"level":"info","message":"device 'http://localhost/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcxfQ.qgm9dQkXylZNTrxNRGz_LrWm8viUtP3n9nv6jWhvER0","level":"info","message":"auth send jwt","requestID":"4ecfc227ad764295eed3f02521ae3aac"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4ecfc227ad764295eed3f02521ae3aac","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.149439,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd","object_type":"device","payload":{"admin":true,"iat":1701705971,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcxfQ.qgm9dQkXylZNTrxNRGz_LrWm8viUtP3n9nv6jWhvER0"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:06:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/50929e1f-0d5e-47da-b367-932781a0cbfd? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4ecfc227ad764295eed3f02521ae3aac"} device_1 | {"level":"info","message":"GET /devices/50929e1f-0d5e-47da-b367-932781a0cbfd? 200 14ms","method":"GET","requestID":"4ecfc227ad764295eed3f02521ae3aac","responseTime":14,"status":200,"url":"/devices/50929e1f-0d5e-47da-b367-932781a0cbfd?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcxfQ.qgm9dQkXylZNTrxNRGz_LrWm8viUtP3n9nv6jWhvER0","level":"info","message":"auth send jwt","requestID":"a94bf48fc5063d0ab3da6b6c20e41cfa"} authentication_1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a94bf48fc5063d0ab3da6b6c20e41cfa","responseTime":2,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.127181,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383","object_type":"device","payload":{"admin":true,"iat":1701705971,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcxfQ.qgm9dQkXylZNTrxNRGz_LrWm8viUtP3n9nv6jWhvER0"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:06:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a94bf48fc5063d0ab3da6b6c20e41cfa"} device_1 | {"level":"info","message":"GET /devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383? 200 10ms","method":"GET","requestID":"a94bf48fc5063d0ab3da6b6c20e41cfa","responseTime":10,"status":200,"url":"/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcxfQ.qgm9dQkXylZNTrxNRGz_LrWm8viUtP3n9nv6jWhvER0","level":"info","message":"auth send jwt","requestID":"09c41408e78f887c32ac71db60f22a23"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"09c41408e78f887c32ac71db60f22a23","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:54572","level":"info","msg":"Received request.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.059123,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705971,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcxfQ.qgm9dQkXylZNTrxNRGz_LrWm8viUtP3n9nv6jWhvER0"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"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:54572","level":"info","msg":"Received request.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.106497,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd","object_type":"device","payload":{"admin":true,"iat":1701705971,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcxfQ.qgm9dQkXylZNTrxNRGz_LrWm8viUtP3n9nv6jWhvER0"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization_1 | {"client_addr":"127.0.0.1:56132","level":"info","msg":"Received request.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"client_addr":"127.0.0.1:56132","level":"info","msg":"Sent response.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.046533,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383","object_type":"device","payload":{"admin":true,"iat":1701705971,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcxfQ.qgm9dQkXylZNTrxNRGz_LrWm8viUtP3n9nv6jWhvER0"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"GET /devices/50929e1f-0d5e-47da-b367-932781a0cbfd? 200 15ms","method":"GET","requestID":"0ae4a6f0-92bf-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/50929e1f-0d5e-47da-b367-932781a0cbfd?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383? 200 17ms","method":"GET","requestID":"0ae4f510-92bf-11ee-b645-7f04f10d7150","responseTime":17,"status":200,"url":"/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"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/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.272858,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"client_addr":"127.0.0.1:56132","level":"info","msg":"Received request.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd","object_type":"device","payload":{"admin":true,"iat":1701705971,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcxfQ.qgm9dQkXylZNTrxNRGz_LrWm8viUtP3n9nv6jWhvER0"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:56132","level":"info","msg":"Sent response.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":2.149125,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383","object_type":"device","payload":{"admin":true,"iat":1701705971,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcxfQ.qgm9dQkXylZNTrxNRGz_LrWm8viUtP3n9nv6jWhvER0"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/50929e1f-0d5e-47da-b367-932781a0cbfd? 200 12ms","method":"GET","requestID":"0b1ea2b0-92bf-11ee-b645-7f04f10d7150","responseTime":12,"status":200,"url":"/devices/50929e1f-0d5e-47da-b367-932781a0cbfd?"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383? 200 13ms","method":"GET","requestID":"0b1ef0d0-92bf-11ee-b645-7f04f10d7150","responseTime":13,"status":200,"url":"/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"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":"1e8ba695-bf23-472d-a313-d84718140481"},{"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":"fe8494a0-2ec4-4ec4-9ee2-bfbb7617adc0"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"9ef410e2-a774-4d99-aa08-0219e4619159"}]},"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/50929e1f-0d5e-47da-b367-932781a0cbfd"},{"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/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":1.18686,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705971,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcxfQ.qgm9dQkXylZNTrxNRGz_LrWm8viUtP3n9nv6jWhvER0"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0e7f2f9a-8af7-4699-be4f-bd706e1c6072#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0e7f2f9a-8af7-4699-be4f-bd706e1c6072","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"b98e4a6a-f97e-4b28-a652-6c3d0ca6559a","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705971.935477} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0b086541-835d-4193-999e-f67e8c8f4bdc","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705971.9359064} authorization_1 | {"level":"info","message":"POST /relations/update 200 127ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":127}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"bd3a14b7-c409-4668-81a3-81592f43e27a","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705971.9376214} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b82901b4-9ced-4640-8033-23d2b91e9536","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705971.9380043} authorization_1 | {"level":"info","message":"POST /relations/update 200 113ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":113}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 773ms","method":"POST","requestID":"09c41408e78f887c32ac71db60f22a23","responseTime":773,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:06:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.780","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"09c41408e78f887c32ac71db60f22a23"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcxfQ.qgm9dQkXylZNTrxNRGz_LrWm8viUtP3n9nv6jWhvER0","level":"info","message":"auth send jwt","requestID":"3032d3a8d866ffc6c46816f545414ff1"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3032d3a8d866ffc6c46816f545414ff1","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.012369,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:11Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd","object_type":"device","payload":{"admin":true,"iat":1701705971,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcxfQ.qgm9dQkXylZNTrxNRGz_LrWm8viUtP3n9nv6jWhvER0"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/97ae5b57-cd6b-49b0-8e6f-1a1993d1bdf7'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/97ae5b57-cd6b-49b0-8e6f-1a1993d1bdf7'"} 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 259ms","method":"POST","requestID":"0b213ac0-92bf-11ee-b645-7f04f10d7150","responseTime":259,"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":"04/Dec/2023:16:06:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/50929e1f-0d5e-47da-b367-932781a0cbfd? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.130","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3032d3a8d866ffc6c46816f545414ff1"} device_1 | {"level":"info","message":"GET /devices/50929e1f-0d5e-47da-b367-932781a0cbfd? 200 124ms","method":"GET","requestID":"3032d3a8d866ffc6c46816f545414ff1","responseTime":124,"status":200,"url":"/devices/50929e1f-0d5e-47da-b367-932781a0cbfd?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcyfQ.ALVLmgGWb5sMUr6dmyJvQoGHecm7k6deIDj-aBIHlkw","level":"info","message":"auth send jwt","requestID":"c6eee155ebcb4d5e7d3c6339cbdd0b91"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c6eee155ebcb4d5e7d3c6339cbdd0b91","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:12Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.903325,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:12Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383","object_type":"device","payload":{"admin":true,"iat":1701705972,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTcyfQ.ALVLmgGWb5sMUr6dmyJvQoGHecm7k6deIDj-aBIHlkw"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:06:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c6eee155ebcb4d5e7d3c6339cbdd0b91"} device_1 | {"level":"info","message":"GET /devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383? 200 9ms","method":"GET","requestID":"c6eee155ebcb4d5e7d3c6339cbdd0b91","responseTime":9,"status":200,"url":"/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383?"} device_1 | {"data":{"peerconnection":"97ae5b57-cd6b-49b0-8e6f-1a1993d1bdf7","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"level":"info","message":"Successfully created peerconnections for experiment"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/97ae5b57-cd6b-49b0-8e6f-1a1993d1bdf7' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"97ae5b57-cd6b-49b0-8e6f-1a1993d1bdf7","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"a1abf7bc59d2ab29df4b87345b9c2bc4","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"a1abf7bc59d2ab29df4b87345b9c2bc4","responseTime":2,"status":200,"url":"/auth"} experiment_1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd"},{"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/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/97ae5b57-cd6b-49b0-8e6f-1a1993d1bdf7"}}},"level":"info","message":"received a callback"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"a1abf7bc59d2ab29df4b87345b9c2bc4","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:06:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"a1abf7bc59d2ab29df4b87345b9c2bc4"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTczfQ.jOhkALah_HoFE6nc37nyCqO6Bw5URgAcnZ5mztytafg","level":"info","message":"auth send jwt","requestID":"d71ca7d19324b8747e5f34ecd99d71e1"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d71ca7d19324b8747e5f34ecd99d71e1","responseTime":3,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:13Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":0.61998,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:13Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072","object_type":"experiment","payload":{"admin":true,"iat":1701705973,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTczfQ.jOhkALah_HoFE6nc37nyCqO6Bw5URgAcnZ5mztytafg"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:13Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":0.675709,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:13Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/97ae5b57-cd6b-49b0-8e6f-1a1993d1bdf7","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/97ae5b57-cd6b-49b0-8e6f-1a1993d1bdf7","object_type":"peerconnection","payload":{"admin":true,"iat":1701705973,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTczfQ.jOhkALah_HoFE6nc37nyCqO6Bw5URgAcnZ5mztytafg"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device_1 | {"data":{"peerconnection":"97ae5b57-cd6b-49b0-8e6f-1a1993d1bdf7","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F97ae5b57-cd6b-49b0-8e6f-1a1993d1bdf7': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F97ae5b57-cd6b-49b0-8e6f-1a1993d1bdf7","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"62a80d3b-2461-4be8-a0db-ec3b85b6c12e","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705973.294083} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a4f10876-7cfc-4247-9ca4-f11ea4041de2","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705973.2942762} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"data":{"peerconnection":"97ae5b57-cd6b-49b0-8e6f-1a1993d1bdf7","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/97ae5b57-cd6b-49b0-8e6f-1a1993d1bdf7 204 520ms","method":"DELETE","requestID":"0bf1aa20-92bf-11ee-b645-7f04f10d7150","responseTime":520,"status":204,"url":"/peerconnections/97ae5b57-cd6b-49b0-8e6f-1a1993d1bdf7"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd'"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383'"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0e7f2f9a-8af7-4699-be4f-bd706e1c6072': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0e7f2f9a-8af7-4699-be4f-bd706e1c6072","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"6d1233f3-b39a-4a93-abc3-b57e6183e725","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705973.9347305} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c0700374-ac60-439f-ba44-a128b8a4b255","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705973.9349532} authorization_1 | {"level":"info","message":"POST /relations/update 200 114ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":114}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"} gateway_1 | {"time_local":"04/Dec/2023:16:06:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.654","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d71ca7d19324b8747e5f34ecd99d71e1"} experiment_1 | {"level":"info","message":"DELETE /experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072 204 1651ms","method":"DELETE","requestID":"d71ca7d19324b8747e5f34ecd99d71e1","responseTime":1651,"status":204,"url":"/experiments/0e7f2f9a-8af7-4699-be4f-bd706e1c6072"} gateway_1 | {"time_local":"04/Dec/2023:16:06:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1554","request_time":"5.166","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"04842bb45cbf039cc3a850194a947325"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc0fQ.fdn9CiIo3zLfONjTl5NTfx9tRdkq_VlJZMpmrbPfzkQ","level":"info","message":"auth send jwt","requestID":"ce7e0d458386ca53f0fb6b0b2bd1f017"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ce7e0d458386ca53f0fb6b0b2bd1f017","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} gateway_1 | {"time_local":"04/Dec/2023:16:06:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1580","request_time":"3.846","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"47e0cab3a36c2a9d6b39c686b507346a"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:14Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.945533,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:14Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705974,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc0fQ.fdn9CiIo3zLfONjTl5NTfx9tRdkq_VlJZMpmrbPfzkQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"9654427d-1319-4474-a80e-1abf6fea82c0","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705974.8517172} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a16d15f4-0f66-4922-841b-e2f2094a2a49","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705974.8518384} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/50929e1f-0d5e-47da-b367-932781a0cbfd' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 267ms","method":"POST","requestID":"ce7e0d458386ca53f0fb6b0b2bd1f017","responseTime":267,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.276","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ce7e0d458386ca53f0fb6b0b2bd1f017"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc1fQ.H_CcEgvs2L8H3NgNTS2lxeGkAHJx_2c_6dvZ-9tK1B4","level":"info","message":"auth send jwt","requestID":"d3c89f3f493afb87cef71c3b1812a129"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d3c89f3f493afb87cef71c3b1812a129","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:15Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.075197,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:15Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705975,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc1fQ.H_CcEgvs2L8H3NgNTS2lxeGkAHJx_2c_6dvZ-9tK1B4"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"d4c5af07-ccf5-4a07-9ad0-b10212a8ed18","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705975.1301723} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c19bbce3-661d-4e96-b176-dffa10736c32","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705975.1302998} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/7d6570ff-b5ac-4f13-8eea-8ed6aaa86383' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 226ms","method":"POST","requestID":"d3c89f3f493afb87cef71c3b1812a129","responseTime":226,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.259","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d3c89f3f493afb87cef71c3b1812a129"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc1fQ.H_CcEgvs2L8H3NgNTS2lxeGkAHJx_2c_6dvZ-9tK1B4","level":"info","message":"auth send jwt","requestID":"90f500205f4de760c04f729fef910e35"} authentication_1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"90f500205f4de760c04f729fef910e35","responseTime":2,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:15Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.955566,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:15Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459","object_type":"device","payload":{"admin":true,"iat":1701705975,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc1fQ.H_CcEgvs2L8H3NgNTS2lxeGkAHJx_2c_6dvZ-9tK1B4"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc1fQ.H_CcEgvs2L8H3NgNTS2lxeGkAHJx_2c_6dvZ-9tK1B4","level":"info","message":"auth send jwt","requestID":"cc059583e1d29d2c050ef789848b3aee"} authentication_1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cc059583e1d29d2c050ef789848b3aee","responseTime":2,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:15Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.844208,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:15Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87","object_type":"device","payload":{"admin":true,"iat":1701705975,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc1fQ.H_CcEgvs2L8H3NgNTS2lxeGkAHJx_2c_6dvZ-9tK1B4"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/cd31f227-8622-4761-9c38-f489f55cb459 HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.177","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"90f500205f4de760c04f729fef910e35"} device_1 | {"level":"info","message":"PATCH /devices/cd31f227-8622-4761-9c38-f489f55cb459 200 173ms","method":"PATCH","requestID":"90f500205f4de760c04f729fef910e35","responseTime":173,"status":200,"url":"/devices/cd31f227-8622-4761-9c38-f489f55cb459"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc1fQ.H_CcEgvs2L8H3NgNTS2lxeGkAHJx_2c_6dvZ-9tK1B4","level":"info","message":"auth send jwt","requestID":"15ac88e7dda701bc4029c3df33093faa"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"15ac88e7dda701bc4029c3df33093faa","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:15Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.184246,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:15Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459","object_type":"device","payload":{"admin":true,"iat":1701705975,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc1fQ.H_CcEgvs2L8H3NgNTS2lxeGkAHJx_2c_6dvZ-9tK1B4"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"PATCH /devices/6afff92c-69de-4a80-96f2-a88ae7805d87 200 314ms","method":"PATCH","requestID":"cc059583e1d29d2c050ef789848b3aee","responseTime":314,"status":200,"url":"/devices/6afff92c-69de-4a80-96f2-a88ae7805d87"} gateway_1 | {"time_local":"04/Dec/2023:16:06:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6afff92c-69de-4a80-96f2-a88ae7805d87 HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.317","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"cc059583e1d29d2c050ef789848b3aee"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc2fQ.OCLKhqs8HCeTA0OPPFMj0u1IMrOhLtlE7e5N4Oe4j2o","level":"info","message":"auth send jwt","requestID":"5d4c42b7067ef082ef2e6bf8fd050dc8"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5d4c42b7067ef082ef2e6bf8fd050dc8","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:16Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.182393,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:16Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87","object_type":"device","payload":{"admin":true,"iat":1701705976,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc2fQ.OCLKhqs8HCeTA0OPPFMj0u1IMrOhLtlE7e5N4Oe4j2o"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cd31f227-8622-4761-9c38-f489f55cb459/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.315","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"15ac88e7dda701bc4029c3df33093faa"} device_1 | {"level":"info","message":"POST /devices/cd31f227-8622-4761-9c38-f489f55cb459/websocket 200 310ms","method":"POST","requestID":"15ac88e7dda701bc4029c3df33093faa","responseTime":310,"status":200,"url":"/devices/cd31f227-8622-4761-9c38-f489f55cb459/websocket"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6afff92c-69de-4a80-96f2-a88ae7805d87/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.282","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"5d4c42b7067ef082ef2e6bf8fd050dc8"} device_1 | {"level":"info","message":"POST /devices/6afff92c-69de-4a80-96f2-a88ae7805d87/websocket 200 276ms","method":"POST","requestID":"5d4c42b7067ef082ef2e6bf8fd050dc8","responseTime":276,"status":200,"url":"/devices/6afff92c-69de-4a80-96f2-a88ae7805d87/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459' connected"} device_1 | {"level":"info","message":"device 'http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc2fQ.OCLKhqs8HCeTA0OPPFMj0u1IMrOhLtlE7e5N4Oe4j2o","level":"info","message":"auth send jwt","requestID":"3671c0a324e0546a280db572c25e5c5e"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3671c0a324e0546a280db572c25e5c5e","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:16Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.906672,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:16Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459","object_type":"device","payload":{"admin":true,"iat":1701705976,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc2fQ.OCLKhqs8HCeTA0OPPFMj0u1IMrOhLtlE7e5N4Oe4j2o"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:06:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cd31f227-8622-4761-9c38-f489f55cb459? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3671c0a324e0546a280db572c25e5c5e"} device_1 | {"level":"info","message":"GET /devices/cd31f227-8622-4761-9c38-f489f55cb459? 200 12ms","method":"GET","requestID":"3671c0a324e0546a280db572c25e5c5e","responseTime":12,"status":200,"url":"/devices/cd31f227-8622-4761-9c38-f489f55cb459?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc2fQ.OCLKhqs8HCeTA0OPPFMj0u1IMrOhLtlE7e5N4Oe4j2o","level":"info","message":"auth send jwt","requestID":"d8fdc28d73eee3a4d349fdd6b7571378"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d8fdc28d73eee3a4d349fdd6b7571378","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:16Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":2.524894,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:16Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87","object_type":"device","payload":{"admin":true,"iat":1701705976,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc2fQ.OCLKhqs8HCeTA0OPPFMj0u1IMrOhLtlE7e5N4Oe4j2o"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/6afff92c-69de-4a80-96f2-a88ae7805d87? 200 13ms","method":"GET","requestID":"d8fdc28d73eee3a4d349fdd6b7571378","responseTime":13,"status":200,"url":"/devices/6afff92c-69de-4a80-96f2-a88ae7805d87?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6afff92c-69de-4a80-96f2-a88ae7805d87? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d8fdc28d73eee3a4d349fdd6b7571378"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc2fQ.OCLKhqs8HCeTA0OPPFMj0u1IMrOhLtlE7e5N4Oe4j2o","level":"info","message":"auth send jwt","requestID":"3d109d92f107a334d5eefa4501a1d685"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3d109d92f107a334d5eefa4501a1d685","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:54572","level":"info","msg":"Received request.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:16Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":0.880147,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:16Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705976,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc2fQ.OCLKhqs8HCeTA0OPPFMj0u1IMrOhLtlE7e5N4Oe4j2o"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"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:54572","level":"info","msg":"Received request.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:16Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.228959,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:16Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459","object_type":"device","payload":{"admin":true,"iat":1701705976,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc2fQ.OCLKhqs8HCeTA0OPPFMj0u1IMrOhLtlE7e5N4Oe4j2o"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:58344","level":"info","msg":"Received request.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:16Z"} authorization_1 | {"client_addr":"127.0.0.1:58344","level":"info","msg":"Sent response.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.350061,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:16Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87","object_type":"device","payload":{"admin":true,"iat":1701705976,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc2fQ.OCLKhqs8HCeTA0OPPFMj0u1IMrOhLtlE7e5N4Oe4j2o"} device_1 | {"level":"info","message":"GET /devices/cd31f227-8622-4761-9c38-f489f55cb459? 200 13ms","method":"GET","requestID":"0e2a3500-92bf-11ee-b645-7f04f10d7150","responseTime":13,"status":200,"url":"/devices/cd31f227-8622-4761-9c38-f489f55cb459?"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/6afff92c-69de-4a80-96f2-a88ae7805d87? 200 14ms","method":"GET","requestID":"0e2a8320-92bf-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/6afff92c-69de-4a80-96f2-a88ae7805d87?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"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/0f79e058-5bd7-4078-a778-b3d29b04a351"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:17Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.235168,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:17Z"} authorization_1 | {"client_addr":"127.0.0.1:58344","level":"info","msg":"Received request.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:17Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459","object_type":"device","payload":{"admin":true,"iat":1701705976,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc2fQ.OCLKhqs8HCeTA0OPPFMj0u1IMrOhLtlE7e5N4Oe4j2o"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:58344","level":"info","msg":"Sent response.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.130275,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:17Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87","object_type":"device","payload":{"admin":true,"iat":1701705976,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc2fQ.OCLKhqs8HCeTA0OPPFMj0u1IMrOhLtlE7e5N4Oe4j2o"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"GET /devices/cd31f227-8622-4761-9c38-f489f55cb459? 200 12ms","method":"GET","requestID":"0e654230-92bf-11ee-b645-7f04f10d7150","responseTime":12,"status":200,"url":"/devices/cd31f227-8622-4761-9c38-f489f55cb459?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/6afff92c-69de-4a80-96f2-a88ae7805d87? 200 14ms","method":"GET","requestID":"0e659050-92bf-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/6afff92c-69de-4a80-96f2-a88ae7805d87?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"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":"6de78046-d9a0-439f-a9d6-27b60f98692a"},{"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":"8684c3d0-af4b-4d5b-84ed-dac6ac45ee6a"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"91a3bce9-d41c-4a87-aaad-c9b81ae72191"}]},"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/cd31f227-8622-4761-9c38-f489f55cb459"},{"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/6afff92c-69de-4a80-96f2-a88ae7805d87"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:17Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.629235,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:17Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705976,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc2fQ.OCLKhqs8HCeTA0OPPFMj0u1IMrOhLtlE7e5N4Oe4j2o"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0f79e058-5bd7-4078-a778-b3d29b04a351#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0f79e058-5bd7-4078-a778-b3d29b04a351","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"62d522af-6605-4a79-86ec-59582e905282","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705977.449237} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bf07f06c-8392-4fc4-bc1d-cc6ce2760303","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705977.44931} authorization_1 | {"level":"info","message":"POST /relations/update 200 145ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":145}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"0c15893e-150b-4aa5-9702-7c87e60fe104","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705977.4511206} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cdbe4cfc-7244-4923-8105-601890fde85d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705977.4513845} authorization_1 | {"level":"info","message":"POST /relations/update 200 127ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":127}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 801ms","method":"POST","requestID":"3d109d92f107a334d5eefa4501a1d685","responseTime":801,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:06:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.809","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3d109d92f107a334d5eefa4501a1d685"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc3fQ.b7M2P5_DklHXoIhk-o9_nz0wAN6Aozw9GLxUHPmjWWU","level":"info","message":"auth send jwt","requestID":"4dfddd23534be8724cdeb32d7580c379"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4dfddd23534be8724cdeb32d7580c379","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:17Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.014598,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:17Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459","object_type":"device","payload":{"admin":true,"iat":1701705977,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc3fQ.b7M2P5_DklHXoIhk-o9_nz0wAN6Aozw9GLxUHPmjWWU"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/561736b3-3650-4a66-9587-86bb124e4689'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/561736b3-3650-4a66-9587-86bb124e4689'"} 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 266ms","method":"POST","requestID":"0e682860-92bf-11ee-b645-7f04f10d7150","responseTime":266,"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":"04/Dec/2023:16:06:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cd31f227-8622-4761-9c38-f489f55cb459? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.122","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4dfddd23534be8724cdeb32d7580c379"} device_1 | {"level":"info","message":"GET /devices/cd31f227-8622-4761-9c38-f489f55cb459? 200 117ms","method":"GET","requestID":"4dfddd23534be8724cdeb32d7580c379","responseTime":117,"status":200,"url":"/devices/cd31f227-8622-4761-9c38-f489f55cb459?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc3fQ.b7M2P5_DklHXoIhk-o9_nz0wAN6Aozw9GLxUHPmjWWU","level":"info","message":"auth send jwt","requestID":"27860ae18dc517d13eb00689edc481a9"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"27860ae18dc517d13eb00689edc481a9","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:17Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.026213,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:17Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87","object_type":"device","payload":{"admin":true,"iat":1701705977,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc3fQ.b7M2P5_DklHXoIhk-o9_nz0wAN6Aozw9GLxUHPmjWWU"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:06:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6afff92c-69de-4a80-96f2-a88ae7805d87? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"27860ae18dc517d13eb00689edc481a9"} device_1 | {"level":"info","message":"GET /devices/6afff92c-69de-4a80-96f2-a88ae7805d87? 200 10ms","method":"GET","requestID":"27860ae18dc517d13eb00689edc481a9","responseTime":10,"status":200,"url":"/devices/6afff92c-69de-4a80-96f2-a88ae7805d87?"} device_1 | {"data":{"peerconnection":"561736b3-3650-4a66-9587-86bb124e4689","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device_1 | {"data":{"peerconnection":"561736b3-3650-4a66-9587-86bb124e4689","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/561736b3-3650-4a66-9587-86bb124e4689' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"561736b3-3650-4a66-9587-86bb124e4689","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"af95adcb526d688417e3e104f6c62e47","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"af95adcb526d688417e3e104f6c62e47","responseTime":0,"status":200,"url":"/auth"} experiment_1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459"},{"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/6afff92c-69de-4a80-96f2-a88ae7805d87"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/561736b3-3650-4a66-9587-86bb124e4689"}}},"level":"info","message":"received a callback"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc3fQ.b7M2P5_DklHXoIhk-o9_nz0wAN6Aozw9GLxUHPmjWWU","level":"info","message":"auth send jwt","requestID":"4805a93a8a67c9ba81ec012c944f5936"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4805a93a8a67c9ba81ec012c944f5936","responseTime":4,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 155ms","method":"POST","requestID":"af95adcb526d688417e3e104f6c62e47","responseTime":155,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:06:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.157","http_referrer":"","http_user_agent":"node-fetch","requestID":"af95adcb526d688417e3e104f6c62e47"} device_1 | {"data":{"peerconnection":"561736b3-3650-4a66-9587-86bb124e4689","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"level":"info","message":"Successfully created peerconnections for experiment"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:18Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":1.305495,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:18Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351","object_type":"experiment","payload":{"admin":true,"iat":1701705977,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc3fQ.b7M2P5_DklHXoIhk-o9_nz0wAN6Aozw9GLxUHPmjWWU"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:18Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":1.033449,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:18Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/561736b3-3650-4a66-9587-86bb124e4689","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/561736b3-3650-4a66-9587-86bb124e4689","object_type":"peerconnection","payload":{"admin":true,"iat":1701705977,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc3fQ.b7M2P5_DklHXoIhk-o9_nz0wAN6Aozw9GLxUHPmjWWU"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"data":{"peerconnection":"561736b3-3650-4a66-9587-86bb124e4689","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F561736b3-3650-4a66-9587-86bb124e4689': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F561736b3-3650-4a66-9587-86bb124e4689","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"cb060dcf-64a7-4d96-9473-492c654e9433","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705978.0746899} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"13646959-b470-4c8b-b865-990f330badea","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705978.0748377} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/561736b3-3650-4a66-9587-86bb124e4689' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"561736b3-3650-4a66-9587-86bb124e4689","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"14865b626c4c8549fe70f290be69eed7","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"14865b626c4c8549fe70f290be69eed7","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/cd31f227-8622-4761-9c38-f489f55cb459"},{"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/6afff92c-69de-4a80-96f2-a88ae7805d87"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/561736b3-3650-4a66-9587-86bb124e4689"}}},"level":"info","message":"received a callback"} device_1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:18Z"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","contextual_tuples":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F561736b3-3650-4a66-9587-86bb124e4689","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2cacdebc-618c-4df0-ba2a-7264e72fdbdd","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705978.2121644} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.831229,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:18Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/561736b3-3650-4a66-9587-86bb124e4689","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/561736b3-3650-4a66-9587-86bb124e4689","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"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/561736b3-3650-4a66-9587-86bb124e4689 204 295ms","method":"DELETE","requestID":"0ed54210-92bf-11ee-b645-7f04f10d7150","responseTime":295,"status":204,"url":"/peerconnections/561736b3-3650-4a66-9587-86bb124e4689"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87'"} device_1 | {"data":{"error":"MissingEntityError","message":"The requested Peerconnection does not exist in the database","method":"GET","stack":"MissingEntityError: The requested Peerconnection does not exist in the database\n at PeerconnectionRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async Object.getPeerconnectionsByPeerconnectionId (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/peerconnections/peerconnection/get.js:13:33)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:351:28","status":404,"url":"/peerconnections/561736b3-3650-4a66-9587-86bb124e4689"},"level":"error","message":"An error occurred during the handling of a request","requestID":"0eefa7e0-92bf-11ee-b645-7f04f10d7150"} device_1 | {"level":"info","message":"GET /peerconnections/561736b3-3650-4a66-9587-86bb124e4689 404 124ms","method":"GET","requestID":"0eefa7e0-92bf-11ee-b645-7f04f10d7150","responseTime":124,"status":404,"url":"/peerconnections/561736b3-3650-4a66-9587-86bb124e4689"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459'"} experiment_1 | {"data":{"error":"UnsuccessfulRequestError","message":"Server returned response with status 404","method":"POST","stack":"UnsuccessfulRequestError: Server returned response with status 404\n at Client.getPeerconnection (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/clients/device/client.js:870:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async handlePeerconnectionStatusChangedEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/peerconnectionStatusChanged.js:41:22)\n at async handleEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/index.js:20:20)\n at async file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/index.js:20:39","status":500,"url":"/callbacks/experiment"},"level":"error","message":"An error occurred during the handling of a request","requestID":"14865b626c4c8549fe70f290be69eed7"} gateway_1 | {"time_local":"04/Dec/2023:16:06:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "500","body_bytes_sent":"89","request_time":"0.137","http_referrer":"","http_user_agent":"node-fetch","requestID":"14865b626c4c8549fe70f290be69eed7"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 500 135ms","method":"POST","requestID":"14865b626c4c8549fe70f290be69eed7","responseTime":135,"status":500,"url":"/callbacks/experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0f79e058-5bd7-4078-a778-b3d29b04a351': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0f79e058-5bd7-4078-a778-b3d29b04a351","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"c2df669e-63d6-42c5-966c-e99508a7c6dc","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705978.6567051} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5215db5a-9bba-470a-821b-0184cff58a72","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705978.6570196} authorization_1 | {"level":"info","message":"POST /relations/update 200 188ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":188}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"} experiment_1 | {"level":"info","message":"DELETE /experiments/0f79e058-5bd7-4078-a778-b3d29b04a351 204 1665ms","method":"DELETE","requestID":"4805a93a8a67c9ba81ec012c944f5936","responseTime":1665,"status":204,"url":"/experiments/0f79e058-5bd7-4078-a778-b3d29b04a351"} gateway_1 | {"time_local":"04/Dec/2023:16:06:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/0f79e058-5bd7-4078-a778-b3d29b04a351 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.670","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4805a93a8a67c9ba81ec012c944f5936"} gateway_1 | {"time_local":"04/Dec/2023:16:06:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1585","request_time":"2.948","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"d8eb868cb412dc45930fcc79c6ef781e"} gateway_1 | {"time_local":"04/Dec/2023:16:06:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1587","request_time":"3.065","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"5d91f2b38dcd04f85b715d5d09ae0c97"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc5fQ.LyobzbmU8xv6zZjjyCOgcoU-X0UgcS4G8FmlDtFUC4c","level":"info","message":"auth send jwt","requestID":"cdc844c5354ed200685a428656e411d0"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"cdc844c5354ed200685a428656e411d0","responseTime":5,"status":200,"url":"/auth"} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/cd31f227-8622-4761-9c38-f489f55cb459' closed"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:19Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.94909,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:19Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705979,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc5fQ.LyobzbmU8xv6zZjjyCOgcoU-X0UgcS4G8FmlDtFUC4c"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"7e59a213-3308-4ce4-b040-055bd06d5a02","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705979.3661833} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"773e24ba-eb26-440a-8c4a-3c4d9a28fe46","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705979.3664355} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6afff92c-69de-4a80-96f2-a88ae7805d87' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 242ms","method":"POST","requestID":"cdc844c5354ed200685a428656e411d0","responseTime":242,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.251","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cdc844c5354ed200685a428656e411d0"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc5fQ.LyobzbmU8xv6zZjjyCOgcoU-X0UgcS4G8FmlDtFUC4c","level":"info","message":"auth send jwt","requestID":"fce606d4eed98fbce6a388ad5f2e20fd"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fce606d4eed98fbce6a388ad5f2e20fd","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:19Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.291761,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:19Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705979,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTc5fQ.LyobzbmU8xv6zZjjyCOgcoU-X0UgcS4G8FmlDtFUC4c"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"89ab0893-d64e-4465-b3f4-dd3feabac47a","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705979.618429} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9626f046-2482-477d-a5d4-990fd0583e39","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705979.6185815} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 133ms","method":"POST","requestID":"fce606d4eed98fbce6a388ad5f2e20fd","responseTime":133,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"261","request_time":"0.168","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fce606d4eed98fbce6a388ad5f2e20fd"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ","level":"info","message":"auth send jwt","requestID":"1d9d3d758aceed886ffc7239367505d5"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1d9d3d758aceed886ffc7239367505d5","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:20Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.775248,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:20Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39","object_type":"device","payload":{"admin":true,"iat":1701705980,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ","level":"info","message":"auth send jwt","requestID":"05fad6fdc53654a2d59d21435a486d9e"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"05fad6fdc53654a2d59d21435a486d9e","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:20Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.046692,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:20Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c","object_type":"device","payload":{"admin":true,"iat":1701705980,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d626bdc7-0703-44c2-83b4-6534d4339b39 HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.134","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"1d9d3d758aceed886ffc7239367505d5"} device_1 | {"level":"info","message":"PATCH /devices/d626bdc7-0703-44c2-83b4-6534d4339b39 200 131ms","method":"PATCH","requestID":"1d9d3d758aceed886ffc7239367505d5","responseTime":131,"status":200,"url":"/devices/d626bdc7-0703-44c2-83b4-6534d4339b39"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ","level":"info","message":"auth send jwt","requestID":"fb48703f8efac26c1a0b88b7ceb0afbe"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fb48703f8efac26c1a0b88b7ceb0afbe","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:20Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.047415,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:20Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39","object_type":"device","payload":{"admin":true,"iat":1701705980,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c HTTP/1.1","status": "200","body_bytes_sent":"792","request_time":"0.250","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"05fad6fdc53654a2d59d21435a486d9e"} device_1 | {"level":"info","message":"PATCH /devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c 200 245ms","method":"PATCH","requestID":"05fad6fdc53654a2d59d21435a486d9e","responseTime":245,"status":200,"url":"/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ","level":"info","message":"auth send jwt","requestID":"59f7bf1a1885cc79ecef60bda54edafb"} authentication_1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"59f7bf1a1885cc79ecef60bda54edafb","responseTime":6,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:20Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.190348,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:20Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c","object_type":"device","payload":{"admin":true,"iat":1701705980,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device_1 | {"level":"info","message":"POST /devices/d626bdc7-0703-44c2-83b4-6534d4339b39/websocket 200 252ms","method":"POST","requestID":"fb48703f8efac26c1a0b88b7ceb0afbe","responseTime":252,"status":200,"url":"/devices/d626bdc7-0703-44c2-83b4-6534d4339b39/websocket"} gateway_1 | {"time_local":"04/Dec/2023:16:06:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d626bdc7-0703-44c2-83b4-6534d4339b39/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.258","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"fb48703f8efac26c1a0b88b7ceb0afbe"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device_1 | {"level":"info","message":"POST /devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c/websocket 200 242ms","method":"POST","requestID":"59f7bf1a1885cc79ecef60bda54edafb","responseTime":242,"status":200,"url":"/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c/websocket"} gateway_1 | {"time_local":"04/Dec/2023:16:06:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.250","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"59f7bf1a1885cc79ecef60bda54edafb"} device_1 | {"level":"info","message":"device 'http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39' connected"} device_1 | {"level":"info","message":"device 'http://localhost/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ","level":"info","message":"auth send jwt","requestID":"009757bf95a8075aa725986964e61f80"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"009757bf95a8075aa725986964e61f80","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:20Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.139251,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:20Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39","object_type":"device","payload":{"admin":true,"iat":1701705980,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:06:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d626bdc7-0703-44c2-83b4-6534d4339b39? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"009757bf95a8075aa725986964e61f80"} device_1 | {"level":"info","message":"GET /devices/d626bdc7-0703-44c2-83b4-6534d4339b39? 200 13ms","method":"GET","requestID":"009757bf95a8075aa725986964e61f80","responseTime":13,"status":200,"url":"/devices/d626bdc7-0703-44c2-83b4-6534d4339b39?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ","level":"info","message":"auth send jwt","requestID":"28ddcd1d500051cf6cac1346ed09ce86"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"28ddcd1d500051cf6cac1346ed09ce86","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:20Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.010554,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:20Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c","object_type":"device","payload":{"admin":true,"iat":1701705980,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"28ddcd1d500051cf6cac1346ed09ce86"} device_1 | {"level":"info","message":"GET /devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c? 200 11ms","method":"GET","requestID":"28ddcd1d500051cf6cac1346ed09ce86","responseTime":11,"status":200,"url":"/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ","level":"info","message":"auth send jwt","requestID":"3c2ca8706e525ea350e5a20ce3b1fa90"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3c2ca8706e525ea350e5a20ce3b1fa90","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:54572","level":"info","msg":"Received request.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:20Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.23865,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:20Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705980,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"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:54572","level":"info","msg":"Received request.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:21Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.083886,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:21Z"} authorization_1 | {"client_addr":"127.0.0.1:58344","level":"info","msg":"Received request.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:21Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39","object_type":"device","payload":{"admin":true,"iat":1701705980,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization_1 | {"client_addr":"127.0.0.1:58344","level":"info","msg":"Sent response.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.357798,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:21Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c","object_type":"device","payload":{"admin":true,"iat":1701705980,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/d626bdc7-0703-44c2-83b4-6534d4339b39? 200 15ms","method":"GET","requestID":"10baf200-92bf-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/d626bdc7-0703-44c2-83b4-6534d4339b39?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c? 200 14ms","method":"GET","requestID":"10bb4020-92bf-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"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/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:21Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.083467,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:21Z"} authorization_1 | {"client_addr":"127.0.0.1:58344","level":"info","msg":"Received request.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:21Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39","object_type":"device","payload":{"admin":true,"iat":1701705980,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization_1 | {"client_addr":"127.0.0.1:58344","level":"info","msg":"Sent response.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.594599,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:21Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c","object_type":"device","payload":{"admin":true,"iat":1701705980,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"GET /devices/d626bdc7-0703-44c2-83b4-6534d4339b39? 200 12ms","method":"GET","requestID":"10f4edc0-92bf-11ee-b645-7f04f10d7150","responseTime":12,"status":200,"url":"/devices/d626bdc7-0703-44c2-83b4-6534d4339b39?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c? 200 14ms","method":"GET","requestID":"10f53be0-92bf-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"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":"1696f8fa-1176-4641-94e4-4c8256301ea7"},{"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":"ec1de46a-3f1e-4a72-9afd-68f29be8de45"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"aeda9058-0208-4599-aa66-8de276774b03"}]},"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/10af7e5c-6c75-4e4e-bea9-c598efe06e0c"},{"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/d626bdc7-0703-44c2-83b4-6534d4339b39"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:21Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.865087,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:21Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705980,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgwfQ.OYXrHHfex7xAZ26ICqO3CBQzHLLAPs0b1gJM3JhWQbQ"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F840d0018-9c8e-49bb-a1a5-0a0227b05103#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F840d0018-9c8e-49bb-a1a5-0a0227b05103","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"4cf337f3-ca10-4a32-bbbe-02676b4bcd56","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705981.7551057} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"68ac9726-c8da-49ab-934e-4aeb5b8ef26b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705981.755642} authorization_1 | {"level":"info","message":"POST /relations/update 200 154ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":154}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"2d2ca2eb-0973-492a-8fa3-bfff666f3cbb","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705981.7576888} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"22aa826f-9d6a-465e-b143-6a20c1c4cca6","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705981.7581873} authorization_1 | {"level":"info","message":"POST /relations/update 200 135ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":135}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 796ms","method":"POST","requestID":"3c2ca8706e525ea350e5a20ce3b1fa90","responseTime":796,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:06:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.805","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3c2ca8706e525ea350e5a20ce3b1fa90"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgxfQ.SBuwHU9frWZIorQoiM_x7VQB12d6QaQrKGDOtU7K_gk","level":"info","message":"auth send jwt","requestID":"ecaab53d233e7c05281b60a61fb52755"} authentication_1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ecaab53d233e7c05281b60a61fb52755","responseTime":2,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:21Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.695226,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:21Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39","object_type":"device","payload":{"admin":true,"iat":1701705981,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgxfQ.SBuwHU9frWZIorQoiM_x7VQB12d6QaQrKGDOtU7K_gk"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/ed08a1fd-c9a4-4b44-8db3-674d66c84313'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ed08a1fd-c9a4-4b44-8db3-674d66c84313'"} 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 283ms","method":"POST","requestID":"10f7fb00-92bf-11ee-b645-7f04f10d7150","responseTime":283,"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":"04/Dec/2023:16:06:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d626bdc7-0703-44c2-83b4-6534d4339b39? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.130","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ecaab53d233e7c05281b60a61fb52755"} device_1 | {"level":"info","message":"GET /devices/d626bdc7-0703-44c2-83b4-6534d4339b39? 200 127ms","method":"GET","requestID":"ecaab53d233e7c05281b60a61fb52755","responseTime":127,"status":200,"url":"/devices/d626bdc7-0703-44c2-83b4-6534d4339b39?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgxfQ.SBuwHU9frWZIorQoiM_x7VQB12d6QaQrKGDOtU7K_gk","level":"info","message":"auth send jwt","requestID":"8c0b8dd4d77ae026942acec072d4158a"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8c0b8dd4d77ae026942acec072d4158a","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:21Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.752351,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:21Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c","object_type":"device","payload":{"admin":true,"iat":1701705981,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgxfQ.SBuwHU9frWZIorQoiM_x7VQB12d6QaQrKGDOtU7K_gk"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:06:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c? HTTP/1.1","status": "200","body_bytes_sent":"791","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8c0b8dd4d77ae026942acec072d4158a"} device_1 | {"level":"info","message":"GET /devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c? 200 9ms","method":"GET","requestID":"8c0b8dd4d77ae026942acec072d4158a","responseTime":9,"status":200,"url":"/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c?"} device_1 | {"data":{"peerconnection":"ed08a1fd-c9a4-4b44-8db3-674d66c84313","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device_1 | {"data":{"peerconnection":"ed08a1fd-c9a4-4b44-8db3-674d66c84313","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/ed08a1fd-c9a4-4b44-8db3-674d66c84313' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"ed08a1fd-c9a4-4b44-8db3-674d66c84313","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"9d948920f1fb95a50c35d800f8c47c70","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"9d948920f1fb95a50c35d800f8c47c70","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/10af7e5c-6c75-4e4e-bea9-c598efe06e0c"},{"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/d626bdc7-0703-44c2-83b4-6534d4339b39"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ed08a1fd-c9a4-4b44-8db3-674d66c84313"}}},"level":"info","message":"received a callback"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgxfQ.SBuwHU9frWZIorQoiM_x7VQB12d6QaQrKGDOtU7K_gk","level":"info","message":"auth send jwt","requestID":"a5f24114a80a61b702299e7ff3adb1b0"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a5f24114a80a61b702299e7ff3adb1b0","responseTime":4,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 146ms","method":"POST","requestID":"9d948920f1fb95a50c35d800f8c47c70","responseTime":146,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:06:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.149","http_referrer":"","http_user_agent":"node-fetch","requestID":"9d948920f1fb95a50c35d800f8c47c70"} device_1 | {"data":{"peerconnection":"ed08a1fd-c9a4-4b44-8db3-674d66c84313","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"level":"info","message":"Successfully created peerconnections for experiment"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:22Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":2.368392,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:22Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103","object_type":"experiment","payload":{"admin":true,"iat":1701705981,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgxfQ.SBuwHU9frWZIorQoiM_x7VQB12d6QaQrKGDOtU7K_gk"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:22Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":1.138185,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:22Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ed08a1fd-c9a4-4b44-8db3-674d66c84313","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/ed08a1fd-c9a4-4b44-8db3-674d66c84313","object_type":"peerconnection","payload":{"admin":true,"iat":1701705981,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgxfQ.SBuwHU9frWZIorQoiM_x7VQB12d6QaQrKGDOtU7K_gk"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"peerconnection":"ed08a1fd-c9a4-4b44-8db3-674d66c84313","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fed08a1fd-c9a4-4b44-8db3-674d66c84313': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fed08a1fd-c9a4-4b44-8db3-674d66c84313","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"932c7329-3c6d-400c-a3c4-0a8cd39b9fb3","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705982.3987167} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"08c4ba7a-8aaa-4439-8000-ef8bf885c88b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705982.3987994} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ed08a1fd-c9a4-4b44-8db3-674d66c84313' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"ed08a1fd-c9a4-4b44-8db3-674d66c84313","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"57186c25951dd30ddcb81adebc49ead7","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"57186c25951dd30ddcb81adebc49ead7","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/10af7e5c-6c75-4e4e-bea9-c598efe06e0c"},{"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/d626bdc7-0703-44c2-83b4-6534d4339b39"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ed08a1fd-c9a4-4b44-8db3-674d66c84313"}}},"level":"info","message":"received a callback"} device_1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:22Z"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","contextual_tuples":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fed08a1fd-c9a4-4b44-8db3-674d66c84313","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b1d36fda-ea3d-404d-92bd-9a6cecc78134","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705982.5518022} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.677924,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:22Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ed08a1fd-c9a4-4b44-8db3-674d66c84313","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ed08a1fd-c9a4-4b44-8db3-674d66c84313","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/ed08a1fd-c9a4-4b44-8db3-674d66c84313 204 351ms","method":"DELETE","requestID":"11667440-92bf-11ee-b645-7f04f10d7150","responseTime":351,"status":204,"url":"/peerconnections/ed08a1fd-c9a4-4b44-8db3-674d66c84313"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/10af7e5c-6c75-4e4e-bea9-c598efe06e0c'"} device_1 | {"data":{"error":"MissingEntityError","message":"The requested Peerconnection does not exist in the database","method":"GET","stack":"MissingEntityError: The requested Peerconnection does not exist in the database\n at PeerconnectionRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async Object.getPeerconnectionsByPeerconnectionId (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/peerconnections/peerconnection/get.js:13:33)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:351:28","status":404,"url":"/peerconnections/ed08a1fd-c9a4-4b44-8db3-674d66c84313"},"level":"error","message":"An error occurred during the handling of a request","requestID":"1185bc10-92bf-11ee-b645-7f04f10d7150"} device_1 | {"level":"info","message":"GET /peerconnections/ed08a1fd-c9a4-4b44-8db3-674d66c84313 404 149ms","method":"GET","requestID":"1185bc10-92bf-11ee-b645-7f04f10d7150","responseTime":149,"status":404,"url":"/peerconnections/ed08a1fd-c9a4-4b44-8db3-674d66c84313"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39'"} experiment_1 | {"data":{"error":"UnsuccessfulRequestError","message":"Server returned response with status 404","method":"POST","stack":"UnsuccessfulRequestError: Server returned response with status 404\n at Client.getPeerconnection (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/clients/device/client.js:870:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async handlePeerconnectionStatusChangedEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/peerconnectionStatusChanged.js:41:22)\n at async handleEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/index.js:20:20)\n at async file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/index.js:20:39","status":500,"url":"/callbacks/experiment"},"level":"error","message":"An error occurred during the handling of a request","requestID":"57186c25951dd30ddcb81adebc49ead7"} gateway_1 | {"time_local":"04/Dec/2023:16:06:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "500","body_bytes_sent":"89","request_time":"0.163","http_referrer":"","http_user_agent":"node-fetch","requestID":"57186c25951dd30ddcb81adebc49ead7"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 500 159ms","method":"POST","requestID":"57186c25951dd30ddcb81adebc49ead7","responseTime":159,"status":500,"url":"/callbacks/experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F840d0018-9c8e-49bb-a1a5-0a0227b05103': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F840d0018-9c8e-49bb-a1a5-0a0227b05103","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"41a11f77-7b0f-4f62-a4c5-fab218273351","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705982.936813} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c0307e57-5737-4f1f-8689-8f37241e680b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705982.9368844} authorization_1 | {"level":"info","message":"POST /relations/update 200 121ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":121}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"} experiment_1 | {"level":"info","message":"DELETE /experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103 204 1632ms","method":"DELETE","requestID":"a5f24114a80a61b702299e7ff3adb1b0","responseTime":1632,"status":204,"url":"/experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103"} gateway_1 | {"time_local":"04/Dec/2023:16:06:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/840d0018-9c8e-49bb-a1a5-0a0227b05103 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.636","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a5f24114a80a61b702299e7ff3adb1b0"} gateway_1 | {"time_local":"04/Dec/2023:16:06:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1587","request_time":"3.040","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"0fb174bf1446e4ca3b0e17f5bc73cc15"} gateway_1 | {"time_local":"04/Dec/2023:16:06:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1585","request_time":"2.922","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.1","requestID":"3519c96f324cb43a35fd587379070725"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgzfQ.24MSZsfpMrdX6nLsdKB5_ajZG0Itdy0MtWXsoNAyWiA","level":"info","message":"auth send jwt","requestID":"eefaaf56cfb3a90461867e578cc13dbb"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"eefaaf56cfb3a90461867e578cc13dbb","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/10af7e5c-6c75-4e4e-bea9-c598efe06e0c' closed"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:23Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.749216,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:23Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705983,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgzfQ.24MSZsfpMrdX6nLsdKB5_ajZG0Itdy0MtWXsoNAyWiA"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"d99b539b-99aa-4068-ae88-65581ffcb1d4","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705983.637612} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dfd0f71e-1a0a-4e89-a9bd-cfb0f2137d3b","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705983.637798} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d626bdc7-0703-44c2-83b4-6534d4339b39' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 315ms","method":"POST","requestID":"eefaaf56cfb3a90461867e578cc13dbb","responseTime":315,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.325","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eefaaf56cfb3a90461867e578cc13dbb"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgzfQ.24MSZsfpMrdX6nLsdKB5_ajZG0Itdy0MtWXsoNAyWiA","level":"info","message":"auth send jwt","requestID":"ba9967d9c74bfbf3d28cc35172c2c2a8"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ba9967d9c74bfbf3d28cc35172c2c2a8","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:23Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.187144,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:23Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705983,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTgzfQ.24MSZsfpMrdX6nLsdKB5_ajZG0Itdy0MtWXsoNAyWiA"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"8d4e3ad9-ce2e-46f9-914a-14faa9438a62","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705983.9645798} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e3fd0508-0d39-4559-b34b-194b2b472e71","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705983.964813} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 158ms","method":"POST","requestID":"ba9967d9c74bfbf3d28cc35172c2c2a8","responseTime":158,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.195","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ba9967d9c74bfbf3d28cc35172c2c2a8"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"8e31014dcfa6ab2173b47add2ac4f010","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"8e31014dcfa6ab2173b47add2ac4f010","responseTime":1,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:06:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/2c49fa7a-d096-462f-b595-d649ad0172ed/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":"8e31014dcfa6ab2173b47add2ac4f010"} device_1 | {"level":"info","message":"OPTIONS /devices/2c49fa7a-d096-462f-b595-d649ad0172ed/websocket 200 1ms","method":"OPTIONS","requestID":"8e31014dcfa6ab2173b47add2ac4f010","responseTime":1,"status":200,"url":"/devices/2c49fa7a-d096-462f-b595-d649ad0172ed/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs","level":"info","message":"auth send jwt","requestID":"760355b7157dddf99bc88ed23466c9c9"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"760355b7157dddf99bc88ed23466c9c9","responseTime":5,"status":200,"url":"/auth"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"e36894ad1ecb74dd0e1275210e9f97cf","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"e36894ad1ecb74dd0e1275210e9f97cf","responseTime":1,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device_1 | {"level":"info","message":"OPTIONS /devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74/websocket 200 1ms","method":"OPTIONS","requestID":"e36894ad1ecb74dd0e1275210e9f97cf","responseTime":1,"status":200,"url":"/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74/websocket"} gateway_1 | {"time_local":"04/Dec/2023:16:06:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.007","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e36894ad1ecb74dd0e1275210e9f97cf"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:26Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.173653,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:26Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c49fa7a-d096-462f-b595-d649ad0172ed","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/2c49fa7a-d096-462f-b595-d649ad0172ed","object_type":"device","payload":{"admin":true,"iat":1701705986,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs","level":"info","message":"auth send jwt","requestID":"1dc6015fbe642ae1493dd676ea2fe47a"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1dc6015fbe642ae1493dd676ea2fe47a","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:26Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.90462,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:26Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74","object_type":"device","payload":{"admin":true,"iat":1701705986,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:06:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2c49fa7a-d096-462f-b595-d649ad0172ed/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.148","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"760355b7157dddf99bc88ed23466c9c9"} device_1 | {"level":"info","message":"POST /devices/2c49fa7a-d096-462f-b595-d649ad0172ed/websocket 200 142ms","method":"POST","requestID":"760355b7157dddf99bc88ed23466c9c9","responseTime":142,"status":200,"url":"/devices/2c49fa7a-d096-462f-b595-d649ad0172ed/websocket"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.253","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1dc6015fbe642ae1493dd676ea2fe47a"} device_1 | {"level":"info","message":"POST /devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74/websocket 200 248ms","method":"POST","requestID":"1dc6015fbe642ae1493dd676ea2fe47a","responseTime":248,"status":200,"url":"/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74/websocket"} device_1 | {"level":"info","message":"device 'http://localhost/devices/2c49fa7a-d096-462f-b595-d649ad0172ed' connected"} device_1 | {"level":"info","message":"device 'http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs","level":"info","message":"auth send jwt","requestID":"e6a1650e08e936aac71abe16968e6ca0"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e6a1650e08e936aac71abe16968e6ca0","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:26Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.839866,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:26Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c49fa7a-d096-462f-b595-d649ad0172ed","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/2c49fa7a-d096-462f-b595-d649ad0172ed","object_type":"device","payload":{"admin":true,"iat":1701705986,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2c49fa7a-d096-462f-b595-d649ad0172ed? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e6a1650e08e936aac71abe16968e6ca0"} device_1 | {"level":"info","message":"GET /devices/2c49fa7a-d096-462f-b595-d649ad0172ed? 200 12ms","method":"GET","requestID":"e6a1650e08e936aac71abe16968e6ca0","responseTime":12,"status":200,"url":"/devices/2c49fa7a-d096-462f-b595-d649ad0172ed?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs","level":"info","message":"auth send jwt","requestID":"9dbb86fdb3c27e927597b2e19752036e"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9dbb86fdb3c27e927597b2e19752036e","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:26Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.002408,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:26Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74","object_type":"device","payload":{"admin":true,"iat":1701705986,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74? 200 10ms","method":"GET","requestID":"9dbb86fdb3c27e927597b2e19752036e","responseTime":10,"status":200,"url":"/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9dbb86fdb3c27e927597b2e19752036e"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs","level":"info","message":"auth send jwt","requestID":"3929142778b55c79fd495a29630136b7"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3929142778b55c79fd495a29630136b7","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:54572","level":"info","msg":"Received request.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:26Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":1.139592,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:26Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705986,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"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:54572","level":"info","msg":"Received request.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:26Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.064078,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:26Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c49fa7a-d096-462f-b595-d649ad0172ed","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/2c49fa7a-d096-462f-b595-d649ad0172ed","object_type":"device","payload":{"admin":true,"iat":1701705986,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"client_addr":"127.0.0.1:57482","level":"info","msg":"Received request.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:26Z"} authorization_1 | {"client_addr":"127.0.0.1:57482","level":"info","msg":"Sent response.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":2.201626,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:26Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74","object_type":"device","payload":{"admin":true,"iat":1701705986,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs"} device_1 | {"level":"info","message":"GET /devices/2c49fa7a-d096-462f-b595-d649ad0172ed? 200 13ms","method":"GET","requestID":"14184dd0-92bf-11ee-b645-7f04f10d7150","responseTime":13,"status":200,"url":"/devices/2c49fa7a-d096-462f-b595-d649ad0172ed?"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74? 200 15ms","method":"GET","requestID":"14189bf0-92bf-11ee-b645-7f04f10d7150","responseTime":15,"status":200,"url":"/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"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:54572","level":"info","msg":"Received request.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:27Z"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.463559,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:27Z"} authorization_1 | {"client_addr":"127.0.0.1:57482","level":"info","msg":"Received request.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:27Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c49fa7a-d096-462f-b595-d649ad0172ed","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/2c49fa7a-d096-462f-b595-d649ad0172ed","object_type":"device","payload":{"admin":true,"iat":1701705986,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization_1 | {"client_addr":"127.0.0.1:57482","level":"info","msg":"Sent response.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.239688,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:27Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74","object_type":"device","payload":{"admin":true,"iat":1701705986,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/2c49fa7a-d096-462f-b595-d649ad0172ed? 200 14ms","method":"GET","requestID":"14513820-92bf-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/2c49fa7a-d096-462f-b595-d649ad0172ed?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74? 200 14ms","method":"GET","requestID":"14518640-92bf-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Building connection plan"} experiment_1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"06ffad36-8f50-47b4-8ffe-2219f801bb81"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"56746deb-8561-4e2e-a426-5176028dea3e"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"ac9ed27f-dd42-4a09-859e-f99e01b70345"}]},"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/2c49fa7a-d096-462f-b595-d649ad0172ed"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:27Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.825084,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:27Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705986,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg2fQ.dbeg43JHWBdKhKfJ5y3qd_X5fntkr_lIQHQaRTIkePs"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff969685e-ad88-40ee-baec-6cbd5e9993e0#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff969685e-ad88-40ee-baec-6cbd5e9993e0","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"62e3558b-43f1-4d47-a243-9fe933539553","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705987.375111} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a7922501-1a53-4390-8068-c1becee62a3c","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705987.3754945} authorization_1 | {"level":"info","message":"POST /relations/update 200 136ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":136}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"ef93a6bf-d53d-481e-85f0-caa9003f1c6c","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705987.3780587} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"70b3347c-6f51-4454-995a-e07f90218efd","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705987.3787315} authorization_1 | {"level":"info","message":"POST /relations/update 200 121ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":121}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 786ms","method":"POST","requestID":"3929142778b55c79fd495a29630136b7","responseTime":786,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:06:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.792","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3929142778b55c79fd495a29630136b7"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg3fQ.A7EtVNXuQQJrV7xp3VAdIapEQ8pCS-CQOznzT5MHcGY","level":"info","message":"auth send jwt","requestID":"aeadfc98922f5b56eb6ab653d10766b9"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"aeadfc98922f5b56eb6ab653d10766b9","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:27Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.138916,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:27Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2c49fa7a-d096-462f-b595-d649ad0172ed","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/2c49fa7a-d096-462f-b595-d649ad0172ed","object_type":"device","payload":{"admin":true,"iat":1701705987,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg3fQ.A7EtVNXuQQJrV7xp3VAdIapEQ8pCS-CQOznzT5MHcGY"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"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/48608542-2a80-43f5-badb-2e5675a49094'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/48608542-2a80-43f5-badb-2e5675a49094'"} 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 267ms","method":"POST","requestID":"1453f740-92bf-11ee-b645-7f04f10d7150","responseTime":267,"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":"04/Dec/2023:16:06:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2c49fa7a-d096-462f-b595-d649ad0172ed? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.129","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"aeadfc98922f5b56eb6ab653d10766b9"} device_1 | {"level":"info","message":"GET /devices/2c49fa7a-d096-462f-b595-d649ad0172ed? 200 123ms","method":"GET","requestID":"aeadfc98922f5b56eb6ab653d10766b9","responseTime":123,"status":200,"url":"/devices/2c49fa7a-d096-462f-b595-d649ad0172ed?"} device_1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg3fQ.A7EtVNXuQQJrV7xp3VAdIapEQ8pCS-CQOznzT5MHcGY","level":"info","message":"auth send jwt","requestID":"82d42c29806991b90c80cc08e215a34c"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"82d42c29806991b90c80cc08e215a34c","responseTime":3,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:27Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.95294,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:27Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74","object_type":"device","payload":{"admin":true,"iat":1701705987,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg3fQ.A7EtVNXuQQJrV7xp3VAdIapEQ8pCS-CQOznzT5MHcGY"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"82d42c29806991b90c80cc08e215a34c"} device_1 | {"level":"info","message":"GET /devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74? 200 8ms","method":"GET","requestID":"82d42c29806991b90c80cc08e215a34c","responseTime":8,"status":200,"url":"/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74?"} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/48608542-2a80-43f5-badb-2e5675a49094' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"48608542-2a80-43f5-badb-2e5675a49094","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"8af35d164d1e2f350576f916b1a561eb","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"8af35d164d1e2f350576f916b1a561eb","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/2c49fa7a-d096-462f-b595-d649ad0172ed"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/48608542-2a80-43f5-badb-2e5675a49094"}}},"level":"info","message":"received a callback"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Successfully created peerconnections for experiment"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 151ms","method":"POST","requestID":"8af35d164d1e2f350576f916b1a561eb","responseTime":151,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:06:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.153","http_referrer":"","http_user_agent":"node-fetch","requestID":"8af35d164d1e2f350576f916b1a561eb"} device_1 | {"data":{"peerconnection":"48608542-2a80-43f5-badb-2e5675a49094","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg3fQ.A7EtVNXuQQJrV7xp3VAdIapEQ8pCS-CQOznzT5MHcGY","level":"info","message":"auth send jwt","requestID":"f458fc7d56170da338ca71e68df042f3"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f458fc7d56170da338ca71e68df042f3","responseTime":4,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:27Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":0.887489,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:27Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0","object_type":"experiment","payload":{"admin":true,"iat":1701705987,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg3fQ.A7EtVNXuQQJrV7xp3VAdIapEQ8pCS-CQOznzT5MHcGY"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:27Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":1.047651,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:27Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/48608542-2a80-43f5-badb-2e5675a49094","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/48608542-2a80-43f5-badb-2e5675a49094","object_type":"peerconnection","payload":{"admin":true,"iat":1701705987,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg3fQ.A7EtVNXuQQJrV7xp3VAdIapEQ8pCS-CQOznzT5MHcGY"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"data":{"peerconnection":"48608542-2a80-43f5-badb-2e5675a49094","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F48608542-2a80-43f5-badb-2e5675a49094': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F48608542-2a80-43f5-badb-2e5675a49094","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"4bc5868e-a852-4883-8e94-739b45daad19","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705988.0452175} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ab16248b-f029-44ec-84ed-7b61f7ec6ec1","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705988.0454388} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/48608542-2a80-43f5-badb-2e5675a49094' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"48608542-2a80-43f5-badb-2e5675a49094","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"5965ca419e24fedc49f3559b7118a8e9","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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 3ms","method":"GET","requestID":"5965ca419e24fedc49f3559b7118a8e9","responseTime":3,"status":200,"url":"/auth"} experiment_1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/2c49fa7a-d096-462f-b595-d649ad0172ed"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/48608542-2a80-43f5-badb-2e5675a49094"}}},"level":"info","message":"received a callback"} device_1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:28Z"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","contextual_tuples":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F48608542-2a80-43f5-badb-2e5675a49094","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"902a9b35-5a7d-4d61-8c8b-3e42db75d377","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705988.180887} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.632679,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:28Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/48608542-2a80-43f5-badb-2e5675a49094","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/48608542-2a80-43f5-badb-2e5675a49094","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization_1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/48608542-2a80-43f5-badb-2e5675a49094 204 365ms","method":"DELETE","requestID":"14bb4490-92bf-11ee-b645-7f04f10d7150","responseTime":365,"status":204,"url":"/peerconnections/48608542-2a80-43f5-badb-2e5675a49094"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/cdfa085e-ccd2-42b9-8235-da2dfcf8de74'"} device_1 | {"data":{"error":"MissingEntityError","message":"The requested Peerconnection does not exist in the database","method":"GET","stack":"MissingEntityError: The requested Peerconnection does not exist in the database\n at PeerconnectionRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async Object.getPeerconnectionsByPeerconnectionId (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/peerconnections/peerconnection/get.js:13:33)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:351:28","status":404,"url":"/peerconnections/48608542-2a80-43f5-badb-2e5675a49094"},"level":"error","message":"An error occurred during the handling of a request","requestID":"14e07fd0-92bf-11ee-b645-7f04f10d7150"} device_1 | {"level":"info","message":"GET /peerconnections/48608542-2a80-43f5-badb-2e5675a49094 404 125ms","method":"GET","requestID":"14e07fd0-92bf-11ee-b645-7f04f10d7150","responseTime":125,"status":404,"url":"/peerconnections/48608542-2a80-43f5-badb-2e5675a49094"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/2c49fa7a-d096-462f-b595-d649ad0172ed'"} experiment_1 | {"data":{"error":"UnsuccessfulRequestError","message":"Server returned response with status 404","method":"POST","stack":"UnsuccessfulRequestError: Server returned response with status 404\n at Client.getPeerconnection (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/clients/device/client.js:870:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async handlePeerconnectionStatusChangedEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/peerconnectionStatusChanged.js:41:22)\n at async handleEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/index.js:20:20)\n at async file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/index.js:20:39","status":500,"url":"/callbacks/experiment"},"level":"error","message":"An error occurred during the handling of a request","requestID":"5965ca419e24fedc49f3559b7118a8e9"} gateway_1 | {"time_local":"04/Dec/2023:16:06:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "500","body_bytes_sent":"89","request_time":"0.139","http_referrer":"","http_user_agent":"node-fetch","requestID":"5965ca419e24fedc49f3559b7118a8e9"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 500 134ms","method":"POST","requestID":"5965ca419e24fedc49f3559b7118a8e9","responseTime":134,"status":500,"url":"/callbacks/experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff969685e-ad88-40ee-baec-6cbd5e9993e0': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff969685e-ad88-40ee-baec-6cbd5e9993e0","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"e34a2bfb-4949-47b8-aaee-f0974df9f963","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705988.5321908} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b4d2a93f-c83c-45ad-84b4-9d314e562f7d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705988.5323553} authorization_1 | {"level":"info","message":"POST /relations/update 200 114ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":114}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"} gateway_1 | {"time_local":"04/Dec/2023:16:06:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.613","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f458fc7d56170da338ca71e68df042f3"} experiment_1 | {"level":"info","message":"DELETE /experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0 204 1608ms","method":"DELETE","requestID":"f458fc7d56170da338ca71e68df042f3","responseTime":1608,"status":204,"url":"/experiments/f969685e-ad88-40ee-baec-6cbd5e9993e0"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg5fQ.h2kD6LxWmJ3kJZ1t7b70v39GgLIlvWH4VGNZSRlZdZM","level":"info","message":"auth send jwt","requestID":"787030739b10e9d6d6268ba5b036b6d4"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"787030739b10e9d6d6268ba5b036b6d4","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} gateway_1 | {"time_local":"04/Dec/2023:16:06:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1351","request_time":"3.339","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6b24ca8054dbc1c61c3daacc5321213d"} gateway_1 | {"time_local":"04/Dec/2023:16:06:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1351","request_time":"3.221","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c45d0d09ff049b5ed40614a9a0b98f4b"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:29Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":0.876681,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:29Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705989,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg5fQ.h2kD6LxWmJ3kJZ1t7b70v39GgLIlvWH4VGNZSRlZdZM"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/2c49fa7a-d096-462f-b595-d649ad0172ed' closed"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"d138500a-a3ba-4a91-ba7d-2d88674b5287","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705989.549774} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3b894e38-df59-48cb-b4b9-50c4212be7b7","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705989.5500808} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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/cdfa085e-ccd2-42b9-8235-da2dfcf8de74' closed"} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 242ms","method":"POST","requestID":"787030739b10e9d6d6268ba5b036b6d4","responseTime":242,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"260","request_time":"0.251","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"787030739b10e9d6d6268ba5b036b6d4"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg5fQ.h2kD6LxWmJ3kJZ1t7b70v39GgLIlvWH4VGNZSRlZdZM","level":"info","message":"auth send jwt","requestID":"4c6534d89a527a493c3ff69a13ca3617"} authentication_1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"4c6534d89a527a493c3ff69a13ca3617","responseTime":5,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevices called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:29Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":396,"resp_duration":1.31037,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:29Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"iat":1701705989,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTg5fQ.h2kD6LxWmJ3kJZ1t7b70v39GgLIlvWH4VGNZSRlZdZM"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"219","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"18bce44b-3dc8-48e4-b154-1650eba9b04d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705989.8010402} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"27d299dc-df25-4b7a-816d-d411e6534fa3","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705989.8012204} 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":"144","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevices succeeded"} device_1 | {"level":"info","message":"POST /devices? 201 131ms","method":"POST","requestID":"4c6534d89a527a493c3ff69a13ca3617","responseTime":131,"status":201,"url":"/devices?"} gateway_1 | {"time_local":"04/Dec/2023:16:06:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"253","request_time":"0.156","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4c6534d89a527a493c3ff69a13ca3617"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"9bee2d227c09996dfa6d5d5e6e2a4ad4","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"9bee2d227c09996dfa6d5d5e6e2a4ad4","responseTime":1,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:06:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8/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":"9bee2d227c09996dfa6d5d5e6e2a4ad4"} device_1 | {"level":"info","message":"OPTIONS /devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8/websocket 200 1ms","method":"OPTIONS","requestID":"9bee2d227c09996dfa6d5d5e6e2a4ad4","responseTime":1,"status":200,"url":"/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTkxfQ.zaqxQiKjT9snlMz7s5pgKHBgVHGUsdhI5afXKEfcSf8","level":"info","message":"auth send jwt","requestID":"e945a7ae6a8d0441dda6748e1d785f18"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e945a7ae6a8d0441dda6748e1d785f18","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:31Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.113096,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:31Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8","object_type":"device","payload":{"admin":true,"iat":1701705991,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTkxfQ.zaqxQiKjT9snlMz7s5pgKHBgVHGUsdhI5afXKEfcSf8"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device_1 | {"level":"info","message":"POST /devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8/websocket 200 113ms","method":"POST","requestID":"e945a7ae6a8d0441dda6748e1d785f18","responseTime":113,"status":200,"url":"/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8/websocket"} gateway_1 | {"time_local":"04/Dec/2023:16:06:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.118","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e945a7ae6a8d0441dda6748e1d785f18"} device_1 | {"level":"info","message":"device 'http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8' connected"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTkyfQ.adU6Ws3qgockOM4sLN7GlfcymKtSsm85JVKHg8UZqFU","level":"info","message":"auth send jwt","requestID":"8122a43434447fc66e922679887f79df"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8122a43434447fc66e922679887f79df","responseTime":4,"status":200,"url":"/auth"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.281241,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:32Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8","object_type":"device","payload":{"admin":true,"iat":1701705992,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTkyfQ.adU6Ws3qgockOM4sLN7GlfcymKtSsm85JVKHg8UZqFU"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:06:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8122a43434447fc66e922679887f79df"} device_1 | {"level":"info","message":"GET /devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8? 200 12ms","method":"GET","requestID":"8122a43434447fc66e922679887f79df","responseTime":12,"status":200,"url":"/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTkyfQ.adU6Ws3qgockOM4sLN7GlfcymKtSsm85JVKHg8UZqFU","level":"info","message":"auth send jwt","requestID":"e69abc9fa3aab05492781491217254b2"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e69abc9fa3aab05492781491217254b2","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:54572","level":"info","msg":"Received request.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":404,"resp_duration":0.980522,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:32Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"iat":1701705992,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTkyfQ.adU6Ws3qgockOM4sLN7GlfcymKtSsm85JVKHg8UZqFU"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"223","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Attempting to run experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Attempting to book experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"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:54572","level":"info","msg":"Received request.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.798477,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:32Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3bf5caee-53cc-4dde-8992-a26474c81b66","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/3bf5caee-53cc-4dde-8992-a26474c81b66","object_type":"device","payload":{"admin":true,"iat":1701705992,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTkyfQ.adU6Ws3qgockOM4sLN7GlfcymKtSsm85JVKHg8UZqFU"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization_1 | {"client_addr":"127.0.0.1:57490","level":"info","msg":"Received request.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:32Z"} authorization_1 | {"client_addr":"127.0.0.1:57490","level":"info","msg":"Sent response.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.153089,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:32Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8","object_type":"device","payload":{"admin":true,"iat":1701705992,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTkyfQ.adU6Ws3qgockOM4sLN7GlfcymKtSsm85JVKHg8UZqFU"} device_1 | {"level":"info","message":"GET /devices/3bf5caee-53cc-4dde-8992-a26474c81b66? 200 13ms","method":"GET","requestID":"175fd7b0-92bf-11ee-b645-7f04f10d7150","responseTime":13,"status":200,"url":"/devices/3bf5caee-53cc-4dde-8992-a26474c81b66?"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8? 200 14ms","method":"GET","requestID":"176025d0-92bf-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Setting up experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Attempting to lock booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Successfully locked booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Attempting to instantiate devices for experiment"} device_1 | {"level":"info","message":"postDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:32Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":2.126612,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:32Z"} authorization_1 | {"action":"instantiate","level":"info","message":"opa_check","object":"device:http://localhost/devices/3bf5caee-53cc-4dde-8992-a26474c81b66","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/3bf5caee-53cc-4dde-8992-a26474c81b66","object_type":"device","payload":{"admin":true,"iat":1701705992,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTkyfQ.adU6Ws3qgockOM4sLN7GlfcymKtSsm85JVKHg8UZqFU"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"286","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"registering changed-callback for device 'http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084' to 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"postDevicesByDeviceId succeeded"} authentication_1 | username fd163d1c-5bd6-4c42-9a73-0de4c25ae933 authentication_1 | {"level":"info","message":"POST /token 201 111ms","method":"POST","requestID":"178c3ee0-92bf-11ee-9303-b35428f41db1","responseTime":111,"status":201,"url":"/token"} device_1 | {"level":"info","message":"POST /devices/3bf5caee-53cc-4dde-8992-a26474c81b66?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 274ms","method":"POST","requestID":"17744a10-92bf-11ee-b645-7f04f10d7150","responseTime":274,"status":201,"url":"/devices/3bf5caee-53cc-4dde-8992-a26474c81b66?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Attempting to update booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Successfully updated booking for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"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/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Successfully running experiment"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:33Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.055305,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:33Z"} authorization_1 | {"client_addr":"127.0.0.1:57490","level":"info","msg":"Received request.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:33Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084","object_type":"device","payload":{"admin":true,"iat":1701705992,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTkyfQ.adU6Ws3qgockOM4sLN7GlfcymKtSsm85JVKHg8UZqFU"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization_1 | {"client_addr":"127.0.0.1:57490","level":"info","msg":"Sent response.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.005616,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:33Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8","object_type":"device","payload":{"admin":true,"iat":1701705992,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTkyfQ.adU6Ws3qgockOM4sLN7GlfcymKtSsm85JVKHg8UZqFU"} authorization_1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084? 200 17ms","method":"GET","requestID":"17d86310-92bf-11ee-b645-7f04f10d7150","responseTime":17,"status":200,"url":"/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084?"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8? 200 16ms","method":"GET","requestID":"17d8b130-92bf-11ee-b645-7f04f10d7150","responseTime":16,"status":200,"url":"/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8?"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb8db8662-a1a4-403c-8d5d-151a723813fc#owner@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb8db8662-a1a4-403c-8d5d-151a723813fc","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"66097082-6575-4ed8-a08b-8018f5dd5031","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705993.3036792} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"361ea85c-ca03-4db4-84f1-ac299ef096fe","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705993.3040242} authorization_1 | {"level":"info","message":"POST /relations/update 200 140ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":140}} experiment_1 | {"data":{"experiment":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment_1 | {"level":"info","message":"POST /experiments 201 1193ms","method":"POST","requestID":"e69abc9fa3aab05492781491217254b2","responseTime":1193,"status":201,"url":"/experiments"} gateway_1 | {"time_local":"04/Dec/2023:16:06:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments HTTP/1.1","status": "201","body_bytes_sent":"1107","request_time":"1.217","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e69abc9fa3aab05492781491217254b2"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"d65da40c7ed3213a4bc6b6a37069397a","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"d65da40c7ed3213a4bc6b6a37069397a","responseTime":1,"status":200,"url":"/auth"} gateway_1 | {"time_local":"04/Dec/2023:16:06:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084/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":"d65da40c7ed3213a4bc6b6a37069397a"} device_1 | {"level":"info","message":"OPTIONS /devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084/websocket 200 1ms","method":"OPTIONS","requestID":"d65da40c7ed3213a4bc6b6a37069397a","responseTime":1,"status":200,"url":"/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084/websocket"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTk1fQ.tPGVozCyEo9ohDgnzm6p51LQB2-I0VkgWuI1vYkmmH0","level":"info","message":"auth send jwt","requestID":"8be70938083e60a3520a9b1aca8d52d5"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8be70938083e60a3520a9b1aca8d52d5","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:35Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.268687,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:35Z"} authorization_1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084","object_type":"device","payload":{"admin":true,"iat":1701705995,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTk1fQ.tPGVozCyEo9ohDgnzm6p51LQB2-I0VkgWuI1vYkmmH0"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device_1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084/websocket HTTP/1.1","status": "200","body_bytes_sent":"36","request_time":"0.125","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8be70938083e60a3520a9b1aca8d52d5"} device_1 | {"level":"info","message":"POST /devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084/websocket 200 119ms","method":"POST","requestID":"8be70938083e60a3520a9b1aca8d52d5","responseTime":119,"status":200,"url":"/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084/websocket"} device_1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084' to 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"device 'http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084' connected"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"085bb750a8b88eb546829f6f7ede3494","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"085bb750a8b88eb546829f6f7ede3494","responseTime":2,"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","owner":"https://todo.example.com","services":[],"type":"device","url":"http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTk1fQ.tPGVozCyEo9ohDgnzm6p51LQB2-I0VkgWuI1vYkmmH0","level":"info","message":"auth send jwt","requestID":"b4601ddaf08742ea712d110cfd6ffc56"} authentication_1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b4601ddaf08742ea712d110cfd6ffc56","responseTime":4,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:35Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.663877,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:35Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084","object_type":"device","payload":{"admin":true,"iat":1701705995,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTk1fQ.tPGVozCyEo9ohDgnzm6p51LQB2-I0VkgWuI1vYkmmH0"} experiment_1 | {"level":"info","message":"Device changed!","meta":{"deviceUrl":"http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084"}} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 10ms","method":"POST","requestID":"085bb750a8b88eb546829f6f7ede3494","responseTime":10,"status":200,"url":"/callbacks/experiment"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} gateway_1 | {"time_local":"04/Dec/2023:16:06: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.015","http_referrer":"","http_user_agent":"node-fetch","requestID":"085bb750a8b88eb546829f6f7ede3494"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway_1 | {"time_local":"04/Dec/2023:16:06:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084? HTTP/1.1","status": "200","body_bytes_sent":"250","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b4601ddaf08742ea712d110cfd6ffc56"} device_1 | {"level":"info","message":"GET /devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084? 200 10ms","method":"GET","requestID":"b4601ddaf08742ea712d110cfd6ffc56","responseTime":10,"status":200,"url":"/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084?"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTk1fQ.tPGVozCyEo9ohDgnzm6p51LQB2-I0VkgWuI1vYkmmH0","level":"info","message":"auth send jwt","requestID":"1188c3e1b034cd0b707dd11fd68faa0c"} authentication_1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1188c3e1b034cd0b707dd11fd68faa0c","responseTime":2,"status":200,"url":"/auth"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:35Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.885948,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:35Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8","object_type":"device","payload":{"admin":true,"iat":1701705995,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTk1fQ.tPGVozCyEo9ohDgnzm6p51LQB2-I0VkgWuI1vYkmmH0"} authorization_1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"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":"04/Dec/2023:16:06:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8? HTTP/1.1","status": "200","body_bytes_sent":"252","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1188c3e1b034cd0b707dd11fd68faa0c"} device_1 | {"level":"info","message":"GET /devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8? 200 9ms","method":"GET","requestID":"1188c3e1b034cd0b707dd11fd68faa0c","responseTime":9,"status":200,"url":"/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8?"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} device_1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:38Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.179367,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:38Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084","object_type":"device","payload":{"admin":true,"iat":1701705992,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTkyfQ.adU6Ws3qgockOM4sLN7GlfcymKtSsm85JVKHg8UZqFU"} authorization_1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:38Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":0.705895,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:38Z"} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8","object_type":"device","payload":{"admin":true,"iat":1701705992,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTkyfQ.adU6Ws3qgockOM4sLN7GlfcymKtSsm85JVKHg8UZqFU"} device_1 | {"level":"info","message":"GET /devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084? 200 12ms","method":"GET","requestID":"1ad687e0-92bf-11ee-b645-7f04f10d7150","responseTime":12,"status":200,"url":"/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084?"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"279","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"GET /devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8? 200 14ms","method":"GET","requestID":"1ad6d600-92bf-11ee-b645-7f04f10d7150","responseTime":14,"status":200,"url":"/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8?"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Building connection plan"} experiment_1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"22e7fcf0-7d8e-4d99-82ce-948baa3978d2"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"42eee60a-67ad-4f82-a39f-399506f912ad"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"01c1a204-b4fa-4cad-a211-319897493004"}]},"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/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device_1 | {"level":"info","message":"postPeerconnections called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:38Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":412,"resp_duration":0.976986,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:38Z"} authorization_1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"iat":1701705992,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTkyfQ.adU6Ws3qgockOM4sLN7GlfcymKtSsm85JVKHg8UZqFU"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"227","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","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@fd163d1c-5bd6-4c42-9a73-0de4c25ae933'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]}},"raw_response":{},"request_id":"e04fb3c0-e1bf-44b9-b837-628dae585d0d","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705998.2084093} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c3fb99dd-40a3-470c-8ab5-1a1930761f45","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705998.208831} 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":"160","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device_1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad'"} device_1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad'"} 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 162ms","method":"POST","requestID":"1ad96e10-92bf-11ee-b645-7f04f10d7150","responseTime":162,"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 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"fd27eb95-d98b-425a-a503-c3c15fc95aad","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"c097e496bd865ded076427b5eeed6638","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"c097e496bd865ded076427b5eeed6638","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":"connecting","url":"http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad"}}},"level":"info","message":"received a callback"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Successfully created peerconnections for experiment"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 147ms","method":"POST","requestID":"c097e496bd865ded076427b5eeed6638","responseTime":147,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:06: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.150","http_referrer":"","http_user_agent":"node-fetch","requestID":"c097e496bd865ded076427b5eeed6638"} device_1 | {"data":{"peerconnection":"fd27eb95-d98b-425a-a503-c3c15fc95aad","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTk4fQ.cPSlYdo26u1LdIDD-mk9cRtMfMKtX13Tm1zbDbOB9vM","level":"info","message":"auth send jwt","requestID":"b331707aaf9e806166d81fd9f81c5fbd"} authentication_1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b331707aaf9e806166d81fd9f81c5fbd","responseTime":3,"status":200,"url":"/auth"} experiment_1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:38Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":459,"resp_duration":0.881519,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:38Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"experiment:http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc","object_type":"experiment","payload":{"admin":true,"iat":1701705998,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTk4fQ.cPSlYdo26u1LdIDD-mk9cRtMfMKtX13Tm1zbDbOB9vM"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"289","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Attempting to finish experiment"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:38Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":471,"resp_duration":0.934578,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:38Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"peerconnection:http://localhost/peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad","object_type":"peerconnection","payload":{"admin":true,"iat":1701705998,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTk4fQ.cPSlYdo26u1LdIDD-mk9cRtMfMKtX13Tm1zbDbOB9vM"} authorization_1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"297","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device_1 | {"data":{"peerconnection":"fd27eb95-d98b-425a-a503-c3c15fc95aad","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffd27eb95-d98b-425a-a503-c3c15fc95aad': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffd27eb95-d98b-425a-a503-c3c15fc95aad","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"751d1ae6-3242-4449-b879-60ccabef9eaa","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705998.8725429} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e0dfeea1-db1e-491f-bd5d-8842e74f80ae","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705998.872805} 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":"187","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device_1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"peerconnection":"fd27eb95-d98b-425a-a503-c3c15fc95aad","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"bd6aa2349c0bf995bc696f6c39c5f74d","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"bd6aa2349c0bf995bc696f6c39c5f74d","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/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad"}}},"level":"info","message":"received a callback"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8'"} device_1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device_1 | {"level":"info","message":"DELETE /peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad 204 374ms","method":"DELETE","requestID":"1b2eba00-92bf-11ee-b645-7f04f10d7150","responseTime":374,"status":204,"url":"/peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad"} device_1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} device_1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084'"} device_1 | {"level":"info","message":"deleteDevicesByDeviceId called"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Received request.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:39Z"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","contextual_tuples":null,"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffd27eb95-d98b-425a-a503-c3c15fc95aad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"84e93de5-63b2-4b5a-91d3-4322fe3e4153","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705999.1339161} authorization_1 | {"client_addr":"127.0.0.1:60922","level":"info","msg":"Received request.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2023-12-04T16:06:39Z"} authorization_1 | {"client_addr":"127.0.0.1:54572","level":"info","msg":"Sent response.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.084844,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:39Z"} authorization_1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization_1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization_1 | {"client_addr":"127.0.0.1:60922","level":"info","msg":"Sent response.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":447,"resp_duration":1.749273,"resp_status":200,"subsystem":"opa","time":"2023-12-04T16:06:39Z"} authorization_1 | {"action":"delete","level":"info","message":"opa_check","object":"device:http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084","openfga":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store":"01HGTRPDQAQB7YS9HP4QN497YP"},"response":{"result":{"allow":true,"enc":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","object":"device:http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084","object_type":"device","payload":{"admin":true,"iat":1701705998,"sub":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:fd163d1c-5bd6-4c42-9a73-0de4c25ae933","subject_alt":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJmZDE2M2QxYy01YmQ2LTRjNDItOWE3My0wZGU0YzI1YWU5MzMiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNzAxNzA1OTk4fQ.cPSlYdo26u1LdIDD-mk9cRtMfMKtX13Tm1zbDbOB9vM"} authorization_1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"281","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"data":{"error":"MissingEntityError","message":"The requested Peerconnection does not exist in the database","method":"GET","stack":"MissingEntityError: The requested Peerconnection does not exist in the database\n at PeerconnectionRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async Object.getPeerconnectionsByPeerconnectionId (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/peerconnections/peerconnection/get.js:13:33)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:351:28","status":404,"url":"/peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad"},"level":"error","message":"An error occurred during the handling of a request","requestID":"1b67cb60-92bf-11ee-b645-7f04f10d7150"} device_1 | {"level":"info","message":"GET /peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad 404 15ms","method":"GET","requestID":"1b67cb60-92bf-11ee-b645-7f04f10d7150","responseTime":15,"status":404,"url":"/peerconnections/fd27eb95-d98b-425a-a503-c3c15fc95aad"} experiment_1 | {"data":{"error":"UnsuccessfulRequestError","message":"Server returned response with status 404","method":"POST","stack":"UnsuccessfulRequestError: Server returned response with status 404\n at Client.getPeerconnection (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/clients/device/client.js:870:19)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async handlePeerconnectionStatusChangedEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/peerconnectionStatusChanged.js:41:22)\n at async handleEventCallback (file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/event/index.js:20:20)\n at async file:///usr/local/lib/node_modules/@crosslab/service-experiment/app/operations/callbacks/index.js:20:39","status":500,"url":"/callbacks/experiment"},"level":"error","message":"An error occurred during the handling of a request","requestID":"bd6aa2349c0bf995bc696f6c39c5f74d"} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 500 135ms","method":"POST","requestID":"bd6aa2349c0bf995bc696f6c39c5f74d","responseTime":135,"status":500,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:06:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "500","body_bytes_sent":"89","request_time":"0.139","http_referrer":"","http_user_agent":"node-fetch","requestID":"bd6aa2349c0bf995bc696f6c39c5f74d"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'device:http%3A%2F%2Flocalhost%2Fdevices%2F78a033f7-7c64-4a49-a7c9-4f3d1d0a3084': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F78a033f7-7c64-4a49-a7c9-4f3d1d0a3084","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"a73dc65f-45ef-4586-8438-3877ffa3aa11","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705999.1491652} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3cd84aeb-3d05-46bd-a549-ca906aa87416","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705999.1493795} 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":"171","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} device_1 | {"level":"info","message":"deleteDevicesByDeviceId succeeded"} device_1 | {"level":"info","message":"DELETE /devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084 204 139ms","method":"DELETE","requestID":"1b684090-92bf-11ee-b645-7f04f10d7150","responseTime":139,"status":204,"url":"/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084"} experiment_1 | {"data":{"experimentUrl":"http://localhost/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"},"level":"info","message":"Successfully finished experiment"} authorization_1 | {"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'fd163d1c-5bd6-4c42-9a73-0de4c25ae933', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb8db8662-a1a4-403c-8d5d-151a723813fc': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"authorization_model_id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb8db8662-a1a4-403c-8d5d-151a723813fc","relation":"owner","user":"fd163d1c-5bd6-4c42-9a73-0de4c25ae933"}]},"store_id":"01HGTRPDQAQB7YS9HP4QN497YP","writes":null},"raw_response":{},"request_id":"d63cb682-d8b3-453e-aca5-85c84c597aac","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705999.5204003} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:35894","raw_request":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","store_id":"01HGTRPDQAQB7YS9HP4QN497YP"},"raw_response":{"authorization_model":{"id":"01HGTRPDRAREZVVDD5Z5RZ7EA5","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"device"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d0fe8f52-4414-4e39-8edc-212210473d84","store_id":"01HGTRPDQAQB7YS9HP4QN497YP","subsystem":"openfga","timestamp":1701705999.520615} authorization_1 | {"level":"info","message":"POST /relations/update 200 122ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"179","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":122}} experiment_1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"} experiment_1 | {"level":"info","message":"DELETE /experiments/b8db8662-a1a4-403c-8d5d-151a723813fc 204 1466ms","method":"DELETE","requestID":"b331707aaf9e806166d81fd9f81c5fbd","responseTime":1466,"status":204,"url":"/experiments/b8db8662-a1a4-403c-8d5d-151a723813fc"} gateway_1 | {"time_local":"04/Dec/2023:16:06:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b8db8662-a1a4-403c-8d5d-151a723813fc HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"1.469","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b331707aaf9e806166d81fd9f81c5fbd"} gateway_1 | {"time_local":"04/Dec/2023:16:06:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1351","request_time":"4.825","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6099416257b074f0fd08bc4ba57b4652"} gateway_1 | {"time_local":"04/Dec/2023:16:06:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1351","request_time":"8.235","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"280de6f1fa310ca6000aeca8982bc1fe"} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/cd6c40cf-6f44-4c07-8662-cd1ad7b298c8' closed"} device_1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084' to 'http://localhost/callbacks/experiment'"} device_1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084' closed"} authentication_1 | {"level":"info","message":"auth error No token found","requestID":"42bb548209f4c6d1c8ebad036147eec0","stack":"Error: No token found\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/auth/index.js:34:19\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/validation.js:39:26\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/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":"42bb548209f4c6d1c8ebad036147eec0","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","owner":"https://todo.example.com","services":[],"type":"device","url":"http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} experiment_1 | {"level":"info","message":"Device changed!","meta":{"deviceUrl":"http://localhost/devices/78a033f7-7c64-4a49-a7c9-4f3d1d0a3084"}} experiment_1 | {"level":"info","message":"POST /callbacks/experiment 200 2ms","method":"POST","requestID":"42bb548209f4c6d1c8ebad036147eec0","responseTime":2,"status":200,"url":"/callbacks/experiment"} gateway_1 | {"time_local":"04/Dec/2023:16:06:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.005","http_referrer":"","http_user_agent":"node-fetch","requestID":"42bb548209f4c6d1c8ebad036147eec0"} authorization_1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"attempting to shutdown gracefully","subsystem":"openfga","timestamp":1701706005.9545183} authorization_1 | {"level":"info","msg":"Shutting down...","subsystem":"opa","time":"2023-12-04T16:06:45Z"} authorization_1 | {"level":"info","msg":"Server shutdown.","subsystem":"opa","time":"2023-12-04T16:06:45Z"} integration-test_gateway_1 exited with code 0 integration-test_device_1 exited with code 143 integration-test_authorization_1 exited with code 0 integration-test_experiment_1 exited with code 143 integration-test_authentication_1 exited with code 143